ACL权限和特殊权限setuidsetgid管理使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACL权限和特殊权限setuidsetgid管理使用相关的知识,希望对你有一定的参考价值。

ACL权限:

 1、ACL权限简介

例如我们新建一个文件目录作为内部学员的上传和访问目录,那么这个文件目录的三个身份:
首先所有者对这个目录要具备rwx权限,
然后我们把我们的内部学员都添加到这个目录的所属组里,让所属组的权限也为rwx,这样内部学员就可以在这里目录里上传下载或者新建编辑属于自己文件了。
而第三个身份就是其他人,也就是内部学员以外的人我们不能让其他人有任何权限,也就是—。
那么最终这个project的目录的权限就是770.

不过出现了一个这样的特殊情况,也就是有一个试听学员,因为不是内部学员但还需要进行试听,所以我们给他的权限就应该是r-x。也就是说只有读和执行权限,而没有写权限。

那么问题就出现了,我们应该把这个试听用户放到哪个组里呢?所有者组里?肯定不行,所属组里也不行,而放到其他人里就没有权限了,如果把其他人修改为r-x,那其他人也能进入这个目录了,这样也不允许。

当然我们可以为试听学员新建一个专门的试听组,但是这个试听组往哪放呢?一个目录不可能有四个用户身份啊。只能有三个,所以,还是不行。

所以啊,遇到这种情况,那么我们目录的三个身份就不够用了。最后就出现了一个极为特殊的权限来解决这个问题,就是ACL权限。

ACL权限忽略了文件或目录的三个身份,也就是说我拥有了ACL权限后我可以不用属于任何一个身份,不是所有者不是所属组也不是其他人。而是一个独立的身份,然后可以单独给这个身份添加我想要的权限。
可以理解为一个可以单独编辑权限的身份。

 2、查看ACL是否开启

#dumpe2fs -h /dev/sda5

dumpe2fs命令是查询指定分区详细文件系统信息的命令

选项:

  -h 仅显示超级块中信息,而不显示磁盘块组的详细信息


先 df -h 看分区情况,在用dumpe2fs命令查看分区是否开启ACl权限

技术分享


 3、ACl权限开启

1>临时开启ACL权限

#mount -o remount,acl /

重新挂载根分区,并挂载加入acl权限

临时生效,重启后失效

2>永久开启ACL权限

#vim /etc/fstab

UUID=abd180d8-5624-456b-9b3a-a9e8008486c4  /  ext4  defaults,acl   1  1

**UUID和/ 都为你想加入acl权限的设备和分区随即更改

#mount -o remount /

然后重新挂载根分区并重新启动系统,使修改生效

**也可不重启系统生效, 使用source /etc/fstab 命令刷新配置文件生效


 4、对文件ACL权限的查看和设定

1>查看ACL命令

# getfacl 文件名

查看文件的acl权限

2>设定ACL权限命令

# setfacl 选项 文件名

选项:

-m 设定acl权限

-x 删除指定的acl权限

-b 删除所有的acl权限

-d 设定默认acl权限

-k 删除默认acl权限

-R 递归设定acl权限



**给用户设定ACL权限

# setfacl -m u:zhangsan:rw /tmp/test

给用户张三在/tmp/test目录上赋予rw权限,格式为 u:用户名:赋予的权限

**给用户组设定权限

# setfacl -m g:student:rwx /tmp/test

给student组在/tmp/test目录上赋予rwx权限,格式为 g:组名:赋予的权限





以上是关于ACL权限和特殊权限setuidsetgid管理使用的主要内容,如果未能解决你的问题,请参考以下文章

php权限管理如何实现

第7章 权限管理_ACL权限

权限管理

理解基本权限以及特殊权限:Suid SgidSticky以及acl

文件ACL&su&sudo

Linux系统中文件的ACL权限