ACL:访问控制列表: Access Control List即文件/目录的访问控制列表,可以针对任意指定的用
户/组设置权限
ACL将用户对一个文件访问权限就像是放在了一个列表里,列表的每一项分别对应了一个或一组
具体用户对该文件的特定访问权限。这就使任意的访问权限管理成为了可能。
设定ACL:
格式: setfacl [option] id:operand
#setfacl -m u:UID:PERM 设定用户
#setfacl -m g:GID:PERM 设定组
#setfacl -m g:UID:PERM 设定某个组的某个用户的acl权限
[注: id 用户 (查看用户的id信息)]
例:
setfacl -m u:centos:rw gentoo.c (对centos用户设定具有对gentoo.c具有读写权限)
设定掩码权限:
setfacl -m m::rw- 1.c (设置掩码权限)
setfacl -m u:centos:rwx 1.c
结果1.c的权限是rw而不是rwx,比rw少可以,比rw多就不行
查看ACL:
#getfacl (文件) 查看ACL
例:
getfacl gentoo.c(查看该文件的acl)
撤销ACL:
#setfacl -x u:UID (文件) 撤销用户权限
#setfacl -x g:GID 组 撤销组权限
setfacl
-b 移除文件上所有acl
-k 删除默认设定
-d 默认访问列表 (只能设置在目录上,目录下的文件可以自动继承)
setfacl -m d:u:(用户):r-- (目录)
-m 设定有效权限位 setfacl -m m::r-- (文件)
文件权限管理扩展: S权限 t权限
SUID:Set UID 设置使文件在执行阶段具有文件所有者的权限,典型的文件是/etc/passwd.
如果一般用户执行该文件,则在执行过程中,该文件可以获得root权限,从而可以更改用
户密码。
chmod u+s /root a.txt(为a.txt设置s为)
如果a.txt原来没有执行权限,则添加上的s会是小写,如果原来有执行权限,S则会是大写
SGID:Set GID 该权限只对目录有效。目录被设置该位后,任何用户在此目录下创建的文件都
具有和该目录所属的组相同的组。
STICKY:
ll -d /tmp (/tmp的权限是777,就是公共场所,谁都可以新建和删除,加了在othet
用户上置t
位之后,就谁都可以建,但是只能删自己的,不能删别人的.加在o位置上表示出了属主
外的所有
用户都只能建,不能删,注意此处的o跟我们平常理解的o不同,平常的o是除了属主和
属组。)
例:chmod o+t /project/
SUID,SGID,STICKY 组合使用
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
如果原来一个目录/tmp/test是755,如果想让他有SUID,SGID位,则chmod 6755
/tmp/test即可