用户身份与权限
UID
管理员UID为0
:系统的管理员用户。
系统用户UID为1~999
: Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。
普通用户UID从1000开始
:是由管理员创建的用于日常工作的用户。
注
:在RHEL5/6上系统用户UID事1-499,而普通用户是500-65535。
useradd
新建用户
useradd [参数] 用户名
参数 | 作用 |
---|---|
-d | 指定用户的家目录 |
-e | 指定账户到期时间 |
-u | 指定用户的默认ID |
-g | 指定用户一个初始的用户基本组(必须存在) |
-G | 指定一个或者多个扩展用户组 |
-N | 不创建与用户同名的基本用户组 |
-s | 指定用户的默认shell解释器 |
groupadd
新建用户组
groupadd [参数] 用户组名
usermod
修改用户的属性
usermod [参数] 用户名
参数 | 作用 |
---|---|
-c | 填写账户的备注信息 |
-d -m | 两个参数连用,可以重新指定用户的家目录并自动将旧数据迁移过去 |
-e | 指定用户到其时间 格式为YYYY-MM-DD |
-g | 变更所属用户组 |
-G | 变更扩展用户组 |
-L | 锁定用户禁止其登陆系统 |
-U | 解锁用户,允许其登陆系统 |
-s | 变更默认终端 |
-u | 修改用户的UID |
chown
改变某个文件或目录的所有者
和所属的组
,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组.
chown [参数] [用户/:用户组] [文件/目录]
实例:chown -r :root /test
注释:将/test目录与目录下的文件所属组更改为root用户组
注:不加:
则表示更改的是所有者,加:
则为修改所属组。
参数 | 作用 |
---|---|
-R | 递归处理 |
-v | 显示命令处理过程 |
-f | 静默模式 |
-h | 只对符号连接文件作修改,而更改其他任何其他相关文件 |
-c | 类似‘-v’,但仅汇报更改的部分 |
chmod
改变文件或目录的权限
.
chmod [参数] [权限] [文件/目录]
实例:chmod -r 775 /test
注释:修改/test目录及目录下的文件权限为775(rwxrwxr-x)
三种修改权限的方式:
- 权限数字:chmod 775 test.txt
- 权限字符:chmod rwxrwxr-x
- 单次模式:chmod u+rwx test (每次只能对用户权限/目录权限/其他权限的单个进行操作权限)
注:单次模式的参数u
表示修改文件所有者权限,g
代表修改文件所属组权限,o
代表修改其他用户权限。通过+
为添加权限,-
为取消权限,=
为修改指定权限。
参数与chown相同。
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
---|---|---|---|---|---|---|---|---|---|
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
权限分配 | 文件所有者 | 文件所属组 | 其他任务 |
---|
三种特殊权限
SUID
作用:
对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)
chmod u+s [文件名/目录]
SGID
作用:
1. 让执行者临时拥有所属组的权限(只对二进制文件程序进行设置)
2. 在某个目录中创建的文件自动继承目录的用户组(只对目录进行设置)
chmod g+s [文件名/目录]
SBIT
作用:
粘滞位、保护位;SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。
chmod o+t [文件名/目录]
查看是否有特殊权限:
SUID | SGID | SBIT |
---|---|---|
rws | rws | rwt |
rwS | rwS | rwT |
数字表达:7777
7666
注
:如果对应位没有x执行权限,那么特殊权限应该改为大写表示。
数字表达则在普通权限前面增加一位。
文件的隐藏属性
chattr
用于设置文件的隐藏权限。
chattr +/-[参数] [文件]
参数 | 作用 |
---|---|
i | 无法对文件进行修改,如果对目录设置该参数,则仅能修改其中的子文件夹内容而不能新建或删除文件 |
a | 仅能补充(追加)内容,无法覆盖或者删除内容 |
S | 文明考吗更改后立即同步到硬盘 |
s | 彻底从硬盘中删除,不可恢复 |
A | 不在修改这个文件或目录的最后访问时间(a time) |
b | 不在修改文件或目录的存取时间 |
D | 检查压缩文件中的存取时间 |
d | 使用dump命令备份时忽略本文件/目录 |
c | 默认将文件或者目录进行压缩 |
u | 当删除该文件后依然保留其再硬盘中的数据,以便日后恢复 |
t | 将文件系统支持尾部合并(tail-merging) |
x | 可以直接访问压缩文件中的内容 |
lsattr
用于显示文件的隐藏权限
lsattr [参数] [文件/目录]
- i 参数为取消权限
文件访问控制列表(File Access Control List)
对某个指定的用户进行单独的权限控制。基于普通文件或目录设置ACL其实就是针对指定的用户或用户组设置文件或目录的操作权限。设置完成后使用ls -l参数查看该文件,文件权限后的.
会变成+
(类似“精准扶贫”)
setfacl
用于管理文件的ACL规则。
setfacl [参数] [对象] [文件名称]
注:此处对象可以为用户也可以为用户组,先用u/g定义,然后接对象,最后接着权限内容,格式如下
用户:u:username:rwx
用户组:g:groupname:rwx
其他:o:other:rwx
实例:
setfacl -Rm u:username:rwx test.txt
参数 | 作用 |
---|---|
-b | 删除所有扩展的acl规则 |
-d | 设置默认acl规则(只能对目录文件使用) |
-R | 递归操作,对目录使用 |
-m | 修改文件或目录的acl规则 |
| -L | 跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录 |
| -P | 跳过所有符号链接,包括符号链接文件 |
getfacl
用于显示文件上设置的ACL信息
getfacl [文件名称]