linux查看目录acl权限,Linux权限管理ACL权限,文件特殊权限,chattr权限,sudo权限...

一 ACL权限

92ef38c4b3d559ddddd57a622a722dc2.png,我们来假设这么一种场景,在真实项目中有一个目录project,它的所属主的权限是rwx,它的所属组的权限也是rwx,其他人没有任何权限,我们的员工一般都会划分到所属组里,来完成日常工作,但是这个时候来了一个新员工,这个员工对linux操作不太熟悉,管理员只想给它分配读和执行的权限,不想给它写的权限,防止他误删文件或是其他,我们该怎么办呢,新建一个组?文件夹只能有一个所属组,把其他人的权限给读和执行,这样更不安全,所以这时ACL权限就有用武之地了,我们可以利用ACL权限给这个指定的用户设定读和执行的权限。

1 查看和设置ACL权限

好了,我们现在模拟这种情况,首先创建一个工作目录/project,然后给它赋予770权限,创建3个用户,zhangsan,lisi,st,创建一个tgroup组,把zhangsan和lisi添加到tgroup组里,改变project的所属组为tgroup

b7f1412bcb89c2bfe5ec490c6d7cf5f0.png

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

16d09aac9887e65294a536cc2b14f400.png

这里没有看到任何特殊权限

下面设置ACL权限

setfacl -m u:st:rx /project/

8f7cf17ff144ea76e8b615c6442431ee.png

-m就是添加一个ACL权限,使用u:用户名:权限的格式,给st设置rx权限

我们再来查看下

e538518c19fca03b44ca2694c3a5bd3f.png

我们看到多了两行

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

2e0dcc814043adacb2e6874c35969c2e.png,我们发现一开始我们假设的目的达到了,st这个用户只有rx权限,没有w权限,不能随便删除文件。

接下来看下给用户组设定ACL权限,格式是setfacl -m g:tgroup2:rx /project/

比如我们新建一个tgroup2的组,给它rx权限,然后新建一个st2,把st2加入tgroup2组中,给tgroup2组设置ACL权限rx,我们看下st2是不是一样不能删除文件

3410a851f020be86bc13a3e9a653d1b5.png

31c3a58365a58532de13a98d3ae602e0.png

好了,所有属于这个组的用户有一样的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的详细信息

7ca6d8149e68d3be9545cb74d17fba36.png

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

我们再来看下cat命令的详细信息

296f05edc22fd9e723b39fac719fa44d.png

cat命令就没用SUID权限,所以普通用户不能查看/etc/shadow 的内容

设定SUID的方法:

4代表SUID

chmod 4755 文件名

chmod u+x 文件名

取消SUID的方法:

chmod 755 文件名

chmod u-x 文件名

2 SetGID

SetGID针对文件的作用:

只有可执行的二进制文件可以设定SGID权限,命令执行者要对该命令具有x执行权限,在执行命令的过程中,组身份升级为该程序文件的属组,执行完恢复

举个例子,我们看下locate命令

5c07cd0c2b6091db45c3556d9c5241a5.png

我们知道在执行locate命令的时候,是去查询数据库

fe4962ba16661cf98ffa908251f4cae6.png

用户在执行locate命令的时候,组身份变为slocate组,而查询数据库时,slocate组具有读的权限,所有可以查询,查询完,恢复本身组的身份

SetGID针对目录的作用:

普通用户必须对此用户具有r和x权限,才能进入该目录,普通用户在此目录中的有效组会变成此名录的属组,若普通用户对此目录拥有w权限,那么新建的文件的默认属组是这个目录的数组

8647d2846b088aed430ec33926a9c257.png

我们看到dtest目录的属组权限是r-s,这个s就是SGID权限,有了这个之后,新建的abc文件的属组就是root了,而不是st2

设定SetGID

2代表SGID

chmod 2755 文件名

chmod g+s 文件名

取消SetGID

chmod 755 文件名

chmod g-s 文件名

3 Sticky BIT

SBIT粘着位的作用:

SBIT只对目录有效,普通用户对该目录拥有W和X权限,如果没有SBIT,由于用户有W

权限,可以随便删除该目录下的文件,一旦有了SBIT,就算用户有W权限,也不能随便删除其他用户从黄金的文件

设置SBIT

chmod 1755 目录名

chmod o+t 目录名

取消SBIT

chmod 755 目录名

chmod o-t 目录名

三 chattr权限

命令格式

chattr [+-=] 选项 文件或目录名

+增加权限

- 删除权限

= 等于某权限

选项

i:如果对文件设置i选项,那么不允许对文件删除,改名,也不能添加和修改数据

9da146ae4d232a40e7e3d0348f8277e7.png

lsattr是查看chattr属性

如果对目录设置i属性,那么只能修改该目录下的数据,不能新建和删除文件

e4c1701f2954246c1c43a63b14ff3acb.png

a:如果对文件设置a属性,那么只能在文件中添加数据,不能修改也不能删除数据

如果对目录设置a属性,那么只允许在目录中建立和修改文件,不能删除文件。

四 sudo权限

把本来只有root可以执行的命令赋予普通用户

sudo的操作对象是系统命令

执行visudo命令

e018bff4383807b454891edac85602c5.png

00d2f76c32a1a74be0769d4d05283129.png

比如我现在想赋予st2用户重启服务器的命令

st2 ALL=/sbin/shutdown -r now

18eed74d3a438d002f6e391733f02f07.png

然后我们切换到st2

可以用sudo -l查看可用的命令

439bfc85e4cc24e603ab7d63f84d479b.png

那么在执行的时候

sudo shutdown -r now即可

好了,Linux权限管理ACL权限,文件特殊权限,chattr权限和sudo权限就总结到这里,如有问题,欢迎指正,谢谢。

0b1331709591d260c1c78e86d0c51c18.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值