文章目录
- 权限管理
- 一、ACL权限
- 1、ACL简介
- 2、查看和设定ACL权限
- 3、最大有效权限与删除ACL权限
- 4、默认ACL权限和递归ACL权限(都只是针对文件的)
- 二、文件特殊权限
- 1、SetUID
- 2、SetGID
- 3、Sticky BIT——SBIT特殊权限
权限管理
一、ACL权限
1、ACL简介
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
#重新挂载文件系统或者重启系统,使得修改生效
2、查看和设定ACL权限
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
3、最大有效权限与删除ACL权限
1)最大有效权限mask
mask是用来指定最大有效权限的,如果给用户赋予了ACL权限,是需要和mask权限相与才能得到该用户的真正权限
2)删除ACL权限
setfacl -x u:用户名 文件名
#删除指定用户权限
setfacl -b 文件名
#删除全部ACL用户权限
4、默认ACL权限和递归ACL权限(都只是针对文件的)
1)递归ACL权限
设定子目录和父目录的ACL权限相同
setfacl -m u:用户名:权限 -R 文件名
2)默认ACL权限
给父目录设定默认ACL权限,父目录中所有新建的子文件都会继承父目录的ACL权限
setfacl -m d:u:用户名:权限 文件名
二、文件特殊权限
1、SetUID
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权限
2、SetGID
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数据库
3、Sticky BIT——SBIT特殊权限
Sticky BIT,简称 SBIT 特殊权限,可意为粘着位、粘滞位、防删除位等。
SBIT 权限仅对目录有效,一旦目录设定了 SBIT 权限,则用户在此目录下创建的文件或目录,就只有自己和 root 才有权利修改或删除该文件。
也就是说,当甲用户以目录所属组或其他人的身份进入 A 目录时,如果甲对该目录有 w 权限,则表示对于 A 目录中任何用户创建的文件或子目录,甲都可以进行修改甚至删除等操作。但是,如果 A 目录设定有 SBIT 权限,那就大不一样啦,甲用户只能操作自己创建的文件或目录,而无法修改甚至删除其他用户创建的文件或目录。
举个例子,Linux 系统中,存储临时文件的 /tmp 目录就设定有 SBIT 权限