一、普通权限(ugo)
以权限标识修改文件和目录的权限
u: user 所有者
g: group 所属组
o: ohter 其他人
针对文件
r:READ读权限,读文件的内容
w:write 写权限,
x:可执行
针对目录
r:read 读取目录下文件和目录的内容
w:是否可在目录下创建文件或删除文件
x:是否可进入目录
chmod ugo+/-(rwx) file
chmod ugo=(rwx) file
以权限值修改文件和目录的权限
八进制 | 二进制 | 权限 |
---|---|---|
0 | 000 | – |
1 | 001 | –x |
2 | 010 | -w- |
3 | 011 | -wx |
4 | 100 | r– |
5 | 101 | r-x |
6 | 110 | rw- |
7 | 111 | rwx |
chmod 777 filename
所对应权限的文件和目录能做的操作
权限 | 文件 | 目录 |
---|---|---|
000 | 什么都不能做 | 什么都不能做 |
001 | 什么都不能做 | cd |
010 | echo | 什么都不能做 |
011 | 可以写,不可读写 | ls |
100 | cat | ls |
101 | 可读,可执行 | ls cd |
110 | 可读可写 | ls |
111 | 什么都可以做 | 什么都可以做 |
修改所有者和所属组
chown 用户名:组名 /tmp —-修改用户名组名
chown 用户名 /tmp —-只修改用户名
chown :组名 /tmp —-只修改组名
添加附加组
创建用户组 group1,创建用户user1、user2
groupadd group1
useradd user1 && useradd user2设置group1为user1、user2的附加组
gpasswd -a user1 group1
gpasswd -a user2 group2
二、特殊权限
权限名 | 权限值 | 针对对象 | 作用 |
---|---|---|---|
SUID | 4 | 二进制可执行文件,目录 | 瞬间获得root权限 |
SGID | 2 | 目录 ,命令文件 | 瞬间获得组权限 |
STICKY | 1 | 目录 | 防止共同目录内不同用户之间互相破环文件 |
设置权限的命令
chmod u+s
chmod g+s
chmod o+t
suid
针对二进制文件
权限位 s
作用在所有者的x位上
作用:让普通用户瞬间获得二进制文件所有者(root)的权限
添加SUID
chmod u+s 文件名
权限演示:
//复制passwd文件到 /test/目录下
cp /usr/bin/passwd /test/
切换普通用户tom,用passwd命令修改密码
用复制的文件 passwd 修改密码
退出普通用户,设置SUID权限,再次切换到普通用户执行
chmod u+s /test/passwd
通过上面的实验可以看出设置了SUID后,用户对之前没有执行权限的文件拥有了执行权限。
guid
权限为:s
权限值:2
作用在所属组的x位上
针对目录:
让普通用户进入目录后具有目录所属组的权限,当用户退出此目录就不再具有此权限
添加sgid
chmod g+s /目录
权限演示:
上图所示:给test目录设置了GUID后,普通用户tom进入目录后创建的文件夹的组属性是root。
sticky
针对目录
权限为:t
作用在其他人的x上
作用:防止普通用户在用一个目录里删除其他用户的目录
添加:
chmod o+t /目录
权限演示:
虽然root将text目录的权限设置成777,但是jim仍然不能删除tom创建的文件夹
三、ACL
访问控制列表
被设置了acl权限的用户和组对文件具有相应的权限
由于ugo权限无法针对更多的用户模式细化的划分权限,acl可以实现更加细化的划分权限。
针对对象:针对用户、针对组
设置acl
setfacl
-m –添加一条acl
-x –删除一条acl
-b –删除所有acl
如何确认文件系统是否支持acl
dumpe2fs -h /dev/sda1 | grep acl
只有root用户能设置acl
查看文件的alc属性
getfacl filename
针对用户添加acl
setfacl -m u:username:rwx filename
针对组设置acl
setfacl -m g:groupname:rwx filename
setfacl -x u:username filename 删除单条acl信息
setfacl -b filename 删除该文件里的所有acl信息
四、隐藏权限
隐藏权限,也称文件系统权限或附加权限
特点:防止root用户误删除
命令:
chattr +a filename 给文件添加不能覆盖文件内容的权限
chattr +i 文件名 root用户也不能删除文件
chattr - 删除添加的隐藏权限
lsattr 文件名 查看文件的隐藏权限
示例:chattr +a 111.txt
目录也可以添加隐藏权限
chattr =aei 1111/
查看
lsattr -d 1111/
设置权限之后无法进行任何操作