Linux权限管理ACL权限,文件特殊权限,chattr权限,

一 ACL权限

Linux权限管理ACL权限,文件特殊权限,chattr权限,sudo权限

,我们来假设这么一种场景,在真实项目中有一个目录project,它的所属主的权限是rwx,它的所属组的权限也是rwx,其他人没有任何权限,我们的员工一般都会划分到所属组里,来完成日常工作,但是这个时候来了一个新员工,这个员工对linux操作不太熟悉,管理员只想给它分配读和执行的权限,不想给它写的权限,防止他误删文件或是其他,我们该怎么办呢,新建一个组?文件夹只能有一个所属组,把其他人的权限给读和执行,这样更不安全,所以这时ACL权限就有用武之地了,我们可以利用ACL权限给这个指定的用户设定读和执行的权限。
1 查看和设置ACL权限
好了,我们现在模拟这种情况,首先创建一个工作目录/project,然后给它赋予770权限,创建3个用户,zhangsan,lisi,st,创建一个tgroup组,把zhangsan和lisi添加到tgroup组里,改变project的所属组为tgroup

Linux权限管理ACL权限,文件特殊权限,chattr权限,sudo权限


现在我们这个st用户,我们想特别对待,只给他rx权限,那么就设置ACL权限,我们在设置之前,先查看下ACL权限,用getfacl project

Linux权限管理ACL权限,文件特殊权限,chattr权限,sudo权限


这里没有看到任何特殊权限
下面设置ACL权限
setfacl -m u:st:rx /project/

-m就是添加一个ACL权限,使用u:用户名:权限的格式,给st设置rx权限
我们再来查看下

Linux权限管理ACL权限,文件特殊权限,chattr权限,sudo权限


我们看到多了两行
user:st:r-x,表明st这个用户有了rx权限,mask:rwx,其实用户st真正有的权限,是r-x和mask默认权限相与的结果,下面我们来验证下,比如我在project目录下创建一个文件,然后切换到st用户,看能否删除

Linux权限管理ACL权限,文件特殊权限,chattr权限,sudo权限

,我们发现一开始我们假设的目的达到了,st这个用户只有rx权限,没有w权限,不能随便删除文件。
接下来看下给用户组设定ACL权限,格式是setfacl -m g:tgroup2:rx /project/
比如我们新建一个tgroup2的组,给它rx权限,然后新建一个st2,把st2加入tgroup2组中,给tgroup2组设置ACL权限rx,我们看下st2是不是一样不能删除文件

Linux权限管理ACL权限,文件特殊权限,chattr权限,sudo权限


Linux权限管理ACL权限,文件特殊权限,chattr权限,sudo权限


好了,所有属于这个组的用户有一样的rx权限,注意,组的acl权限同样是跟mask权限与的结果。

2 最大有效权限和删除ACL权限
我们上面说了,ACL权限的最终结果是跟mask权限与的结果,那如果我们想修改这个最大有效权限呢
setfacl -m m:rx 文件名
这样就可以了,这里就不演示了
那刚才我们添加了几个acl权限,如果想删除st1和tgroup2的acl权限
setfacl -x u:st1 文件名
setfacl -x g:tgroup2 文件名
如果想全部删除
setfacl -b 文件名 这样就全都删除了

3 递归ACL权限和默认ACL权限
递归是父目录在设定ACL权限时,所有的子文件和子目录也会有相同的ACL权限
setfacl -m u:用户名:权限 -R 父目录

默认ACL权限的作用是,如果给父目录设定了ACL权限,那么父目录中所有新建的子文件都会有默认的ACL权限
setfacl -m d:u:用户名:权限 文件名

二 文件特殊权限
1 SetUID
只有可以执行的二进制程序才能设定SUID权限,命令执行者要对该命令有x执行权限,
命令执行者在执行程序时,可以灵魂附体为文件的属主,SUID权限只在程序的执行过程中有效
举个例子:
我们来看下可执行文件passwd的详细信息

我们看到该可执行文件的 所有者是root,并且权限的用户权限是rws,表明passwd文件具有SUID权限,所以普通用户可以修改自己的密码,普通用户修改自己密码的过程,是灵魂附体为root,然后执行passwd,修改完又恢复自己的身份
我们再来看下cat命令的详细信息

Linux权限管理ACL权限,文件特殊权限,chattr权限,sudo权限


cat命令就没用SUID权限,所以普通用户不能查看/etc/shadow 的内容
设定SUID的方法:
4代表SUID
chmod 4755 文件名
chmod u+x 文件名
取消SUID的方法:
chmod 755 文件名
chmod u-x 文件名

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14748.html