开启ACL
dumpe2fs /dev/sda1 查看分区是否开启ACL
-h 仅显示超级块信息
注:当文件系统为xfs类型时已开启ACL,但是此命令会提示找不到有效的文件系统超级块
查看文件系统命令:df -Th
mount -o remount,acl /dev/sda1临时开启分区ACL(重新挂载分区,并挂载加入ACL权限)
mount -o remount / 重新挂载文件系统,然后重启
vim /etc/fstab 永久分区开启ACL权限;在default后加入“,acl”
ACL权限 (drwxrwx---+表示该目录已设定ACL权限)
getfacl 查看ACL
setfacl -m 设定ACL权限
例: setfacl -m u:user123:rx /home/share
setfacl -m g:group123:rx /home/share
-d 设置默认ACL(作用是父目录中所有新建的子文件都会继承父目录的ACL权限)
例:setfacl -m d:u:group123:rx share
-R 递归设定ACL(-R不能放在setfacl后面;只能放在权限后后面)
例:setfacl -m u:user123:rx -R /home/share
-x 删除指定ACL
例:setfacl -x u:user123 share 删除用户ACL权限
setfacl -x g:group123 share 删除组ACL权限
-b 删除所有ACL
-k 删除默认ACL
mask权限
setfacl -m m:rx share 最大有效权限(只影响ACL权限和所属组权限)
文件特殊权限
setUID
只有可执行的二进制程序才能设定SUID权限
执行者必须对该程序有X(执行)权限
命令执行者在执行该程序时获得该程序文件属主的身份
setUID权限只有在该程序执行过程有效
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
所有者属性中s表示该文件已设定setUID权限(大写S代表报错)
chmod 4755或
chmod u+s 设定setUID
chmod 755或
chmod u-s 取消setUID
setGID
针对文件的作用:
只有可执行的二进制程序才能设定SUID权限
执行者必须对该程序有X(执行)权限
命令执行者在执行该程序时组身份升级为该文件的属组
setGID权限只有在该程序执行过程有效
针对目录的作用
普通用户对此目录要有rx权限
普通用户在此目录中有效组会变成此目录的属组
若普通用户对此目录拥有w权限时,新建文件的默认属组是这个目录的属组
setGID
chmod 2755或
chmod g+s 设定setGID
chmod 755或
chmod g-s 取消setGID
SBIT
黏着位只对目录有效
普通用户对该目录拥有wx权限
如果没有黏着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件。一旦赋予黏着位,除root外,普通用户就算有w权限,也只能删除自己建立的文件
sticky BIT
chmod 1777或
chmod o+t 设定stickyBIT
chmod 777或
chmod o-t 取消stickyBIT