Linux系列之——用户身份与文件权限
前言
用户管理相关文件
家目录
- 普通用户 /home/用户名/ 权限:700
- 超级用户 /root/ 权限:550
用户的邮箱
- /var/spool/mail/用户名
用户模板文件
- /etc/skel/
用户管理命令
useradd
释义:添加用户
格式:useradd [选项] [用户名]
选项:
-u 指定UID
-d 指定用户家目录,默认/home/用户名
-c 用户说明
-g [组名] 指定初始组,默认与用户名同名的基本用户组
-G [组名] 指定附加组
-s 指定shell,默认/bin/bash
-e 用户到期时间
-N 不创建与用户名相同的基本用户组
groupadd
释义:创建用户组
格式:groupadd [选项] [组名]
选项:
-g [GID] 指定组 GID
usermod
释义:修改用户信息
格式:usermod [选项] [用户名]
选项:
-u 修改UID
-c 修改用户说明
-G 修改组名
-L 临时锁定用户
-U 解锁用户锁定
groupmod
释义:修改用户组
格式:groupmod [选项] [组名]
选项:
-g [GID] 修改组GID
-n [新组名] 修改组名
gpasswd
释义:把用户加入组或者从组中移除
格式:gpasswd [选项] [用户名]
选项:
-a [用户名] 加入
-d [用户名] 移除
passwd
释义:修改用户密码
格式:passwd [选项] [用户名]
选项:
-l 锁定用户,禁止登录
-u 解除锁定,允许用户登录
--stdin 允许通过标准输入修改用户密码
-d 使该用户可以空密码登录系统
-e 强制用户在下次登录的时候必须修改密码
-S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称
chage
释义:修改用户密码状态
格式:chage [选项] [用户名]
选项:
-l 列出用户的详细密码状态
-d [日期] 修改密码最后一次更改日期
-m [天数] 两次密码修改时间间隔
-M [天数] 密码有效期
-W [天数] 密码过期警告天数
-I [天数] 密码过期后宽限天数
-E [天数] 账户实效时间
userdel
释义:删除用户
格式:userdel [选项] [用户名]
选项:
-r 删除用户的同时删除用户的家目录
-f 强制删除用户
groupdel
释义:删除组
su
释义:切换用户身份
格式:su [选项] [用户名]
选项:
-
代表连带用户的环境变量一起切换
-c
仅执行一次命令,而不切换用户身份
sudo
释义:用于给普通用户提供额外的权限来完成本来需要root管理员才能完成的任务
格式:sudo [参数] [命令]
选项:
-h 列出帮助信息
-l 列出当前用户可执行的权限
-u [用户名或UID] 以指定的用户身份执行命令
-k 清空密码的有效时间,下次执行sudo时需要再次进行密码验证
-b 在后台执行指定的命令
-p 更改询问密码的提示语
sudo 具有功能
- 限制用户执行指定的命令
- 记录用户执行的每一条命令
- 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数
- 验证密码的后5分钟内(默认值)无需让用户再次验证密码
visudo
释义:仅root用户可以执行,该命令用来编辑sudo服务的配置文件
格式:配置文件内
#谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
#Allow root to run any commands anywhere
root ALL=(ALL) ALL
//用户 被管理主机=(可使用的身份) 授权命令(绝对路径)
%where ALL=(ALL) ALL
//组名 被管理主机=(可使用的身份) 授权命令(绝对路径)
#username ALL=NOPASSWD: /usr/sbin/poweroff
//不需要验证密码
文件权限
文件类型
-
普通文件
d 目录文件
l 链接文件
b 块设备文件
c 字符设备文件
p 管道文件
普通权限
权限更改
chown 更改所属用户所属组
格式:chown [选项] [所属用户:所属组] [文件或目录名称]
选项:
-R 递归更改
chgrp 更改用户所属组
格式:chgrp [权限] [文件或目录名称]
chmod 更改用户权限
格式:chmod [选项] [权限] [文件或目录名称]
选项:
-R 递归更改
文件特殊权限
SetUID
SUID是一种对二进制程序设置的普通权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)
SUID,必须满足普通用户可执行的文件,其他人必须有可执行权限
- other 变成拥有这个文件的最高权限
- passwd 文件去掉s位普通用户不能配置密码
数字表示为4,字符表示为文件所有者的执行权限位为s,如果该文件没有执行权限则为S
SetGID
SGID功能
让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)
- 文件不管谁创建,都属于当前文件夹的所属组
- 数字表示为2,字符表示为文件所属组的执行权限位为s,如果该文件没有执行权限则为S
SetBit
- SBIT,粘滞位。谁创建,谁删除。
- 数字表示位1,字符表示为其他用户的执行权限位为t,如果该文件没有执行权限则为T
ACL权限
setfacl
释义:管理文件的ACL规则
格式:setgacl [参数] [文件名]
参数:
-R 针对目录递归
-m 针对普通文件使用
-b 删除所有ACL权限
-x 删除指定的ACL权限
-d 设置默认ACL权限
getfacl
释义:查看设置的ACL信息
格式:getfacl [文件名]
最大有效权限
- umask
隐藏权限
chattr
释义:设置文件的隐藏权限
格式:chattr [+/-][选项] [文件]
选项:
i 无法对文件进行修改
a 仅允许追加内容,无法覆盖删除内容
S 文件内容在变更后立即同步到硬盘
s 彻底从硬盘中删除,不可恢复
A 不再修改这个文件或目录的最后访问时间
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump命令备份时忽略本文件/目录
c 默认将文件或者目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并
X 可以直接访问压缩文件中的内容
lsattr
释义:用于显示文件的隐藏权限
格式:lsattr [选项] [文件]
共有 0 条评论