1)ACL权限简介——解决用户身份(ugo)不够用的情况 关于ACL权限详解可参考http://c.biancheng.net/view/3120.html,这篇文章基本详细解释了。 2)查看分区ACL权限是否开启 dumppe2fs -h /dev/sda3
-h ——仅仅显示超级块儿中的信息,而不显示磁盘组块的详细信息
3)临时开启分区ACL权限
mount -o remount,acl/
4)永久修改ACL权限
vi /etc/fstab #加入ACL(,acl) mount -o remount #重新挂载文件系统或者重启系统,使得修改生效
1)查看ACL权限
getfacl文件名
2)设定ACL权限 setfacl [选项] 文件名
-m 设定ACL权限 -x 删除指定的ACL权限 -b 删除所有的ACL权限 -d 设定默认ACL权限 -k 删除默认ACL权限 -R 递归设定ACL权限
3)给用户组设定ACL权限
groupadd tgroup2 setfacl -m g:tgroup:rwx /project
1)最大有效权限mask mask是用来指定最大有效权限的,如果给用户赋予了ACL权限,是需要和mask权限相与才能得到该用户的真正权限
2)删除ACL权限
setfacl -x u:用户名 文件名 #删除指定用户权限 setfacl -b 文件名 #删除全部ACL用户权限
1)递归ACL权限 设定子目录和父目录的ACL权限相同
setfacl -m u:用户名:权限 -R 文件名
2)默认ACL权限 给父目录设定默认ACL权限,父目录中所有新建的子文件都会继承父目录的ACL权限
setfacl -m d:u:用户名:权限 文件名
1)SUID简介:
只有可以执行的二进制程序才能够设定SUID权限命令执行者要对该程序拥有x(执行)权限命令执行者在执行该程序的时候获得该程序文件宿主的身份(在执行程序的过程中灵魂附体为文件的所属者)SetUID权限只在该程序执行过程中有效,身份改变只在程序执行的过程中有效passwd 命令拥有SetUID权限,所以普通用户可以修改自己的密码
ll /usr/bin/passswd
cat命令没有SetUID权限,所以普通用户不能够查看/etc/shadow文件中的内容
2)设定SUID方法:(注意用户要有x权限,不然在权限中显示S而非s来报错)
4代表SUID chmod 4755 文件名 chmod u+s 文件名
3)取消SUID方法
chmod 755 文件名 chmod u-s 文件名
4)危险的SetUID
关键目录应该严格控制写权限。比如’/’、‘/usr’等用户的密码设置应该严格遵守密码三原则对系统中应该具有SetUID权限的文件做一列表,定时检查有没有这之外的文件被设置了SetUID权限1)SetGID针对文件的作用:
只有可执行的二进制程序才能设置SGID权限命令执行者要对该程序拥有x(执行)权限命令执行者在执行程序的时候,组身份升级为该程序文件的所属组SetGID权限同样只在执行该程序的过程中有效ll /usr/bin/locate ll /var/lib/mlocate/mlocate.db
/usr/bin/local 是可执行二进制文件,可以赋予SCID 执行用户对/usr/bin/locate命令拥有执行权限 执行/usr/bin/locate 命令时,组身份会升级为slocate组,而slocate组对/car/lib/mlocate/mlocate.db数据库拥有r权限,所以普通用户可以使用locate命令,查询mlocate.db数据库
Sticky BIT,简称 SBIT 特殊权限,可意为粘着位、粘滞位、防删除位等。
SBIT 权限仅对目录有效,一旦目录设定了 SBIT 权限,则用户在此目录下创建的文件或目录,就只有自己和 root 才有权利修改或删除该文件。
也就是说,当甲用户以目录所属组或其他人的身份进入 A 目录时,如果甲对该目录有 w 权限,则表示对于 A 目录中任何用户创建的文件或子目录,甲都可以进行修改甚至删除等操作。但是,如果 A 目录设定有 SBIT 权限,那就大不一样啦,甲用户只能操作自己创建的文件或目录,而无法修改甚至删除其他用户创建的文件或目录。
举个例子,Linux 系统中,存储临时文件的 /tmp 目录就设定有 SBIT 权限