用命令setfacl设置的ACL(Access Control List) 权限是UGO权限的扩展,ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。
| ps:UGO中的O即其他人,涵盖了非常大的范围,我们使用setfacl可以将用户对文件的权限进行进一步细化, |
文件一旦设置了acl权限后,查看信息会出现一个加号,以后包括UGO在内的权限都可以用setfacl来设置
| 修改属主的权限 |
| setfacl -m u::权限 a.txt |
| |
| 修改属组的权限 |
| setfacl -m g::权限 a.txt |
| |
| 修改其他人的权限 |
| setfacl -m o::权限 a.txt |
| |
| 修改具体某一个用户的权限 |
| setfacl -m u:用户名:权限 a.txt |
| |
| 修改具体某一个组的权限 |
| setfacl -m g:组名:权限 a.txt |
| |
| |
查看与删除
| |
| getfacl /opt/a.txt |
| |
| |
| setfacl -x g:group1 /opt/a.txt |
| setfacl -b /opt/a.txt |
应用:当前用户如果检索不到对应的acl权限或者检索到后发现权限为空,都会对应到other权限上
| |
| setfacl -b b.txt |
| |
| setfacl -m o::- b.txt |
| setfacl -m u:egon01:r b.txt |
| setfacl -m u:egon02:w b.txt |
| |
| |
| |
| |
| |
| |
| |
| setfacl -b b.txt |
| |
| setfacl -m o::rw b.txt |
| setfacl -m u:egon01:r b.txt |
| setfacl -m u:egon02:w b.txt |
| |
| |
| |
| |
| |
应用示例
| [root @ web01 ~] |
| / root |
| [root @ web01 ~] |
| [root @ web01 ~] |
| |
| |
| |
| user::rw - |
| group::r - - |
| other::r - - |
| |
| [root @ web01 ~] |
| [root @ web01 ~] |
| [root @ web01 ~] |
| [root @ web01 ~] |
| |
| |
| |
| user::rw - |
| user: egon01:r - - |
| user: egon02:-w - |
| group::r - - |
| mask::rw - |
| other::--- |
| |
| [root @ web01 ~] |
| 1111 |
| [root @ web01 ~] |
| -bash: / root / b.txt: 权限不够 |
| [root @ web01 ~] |
| cat: / root / b.txt: 权限不够 |
| [root @ web01 ~] |
| [root @ web01 ~] |
==============>ACL高级用法<==============
1、mask
设置mask命令如下。
| setfacl -m m:rw /opt/a.txt |
设置完mask后,除了所有者和other不受影响,其他都会受到mask的影响,mask决定了他们的最高权限)
mask值就像一个筛子,文件属主和other之外的所有权限都需要被它筛一遍,如果mask值为rw-则代表该筛子只放行rw权限。本质原理是权限A需要与mask值B进行按位与运算,得到的结果才是effective有效权限
建议:为了方便管理文件权限,其他人的权限置为空:chmod o=- /opt/a.txt
| |
| [root@egon ~] |
| [root@egon ~] |
| [root@egon ~] |
| getfacl: Removing leading '/' from absolute path names |
| |
| |
| |
| user::rw- |
| group::r-- |
| other::--- |
| |
| [root@egon ~] |
| |
| |
| [root@egon opt] |
| [root@egon opt] |
| [root@egon opt] |
| getfacl: Removing leading '/' from absolute path names |
| |
| |
| |
| user::rw- |
| user:lili:r-- |
| user:egon:rw- |
| group::r-- |
| mask::rw- |
| other::--- |
| |
| [root@egon opt] |
| -rw-rw----+ 1 root root 4 10月 29 19:33 /opt/a.txt |
| [root@egon opt] |
| |
| |
| lili权限:r-- |
| mask权限:rw- |
| lili最终权限: r-- |
| [root@egon opt] |
| 111 |
| 222 |
| [root@egon opt] |
| -bash: /opt/a.txt: 权限不够 |
| [root@egon opt] |
| |
| egon权限:rw- |
| mask权限:rw- |
| 最终权限: rw- |
| [root@egon opt] |
| 111 |
| [root@egon opt] |
| [root@egon opt] |
| |
| |
| [root@egon opt] |
| [root@egon opt] |
| getfacl: Removing leading '/' from absolute path names |
| |
| |
| |
| user::rw- |
| user:lili:r-- |
| user:egon:rw- |
| group::r-- |
| mask::--- |
| other::--- |
| |
| [root@egon opt] |
| cat: /opt/a.txt: 权限不够 |
| [root@egon opt] |
| cat: /opt/a.txt: 权限不够 |
| [root@egon opt] |
| |
| |
2、default: 继承(默认)
要求: 希望egon能够对/home以及以后在/home下新建的文件有读、写、执行权限
思路:
步骤一: 赋予egon对/home读、写、执行权限
[root@localhost ~]# setfacl -m u:egon:rwx /home
步骤二: 赋予egon对以后在/home下新建的文件有读、写、执行权限 (使egon的权限继承),注意:是作用到子目录,对当前文件没有相应权限
[root@localhost ~]# setfacl -m d:u:egon:rwx /home
| [root@egon opt] |
| [root@egon opt] |
| [root@egon opt] |
| [root@egon opt] |
| getfacl: Removing leading '/' from absolute path names |
| |
| |
| |
| user::rwx |
| user:egon:rwx |
| group::r-x |
| mask::rwx |
| other::r-x |
| default:user::rwx |
| default:user:egon:rwx |
| default:group::r-x |
| default:mask::rwx |
| default:other::r-x |
| |
| [root@egon opt] |
| [root@egon opt] |
| [root@egon opt] |
| getfacl: Removing leading '/' from absolute path names |
| |
| |
| |
| user::rwx |
| user:egon:rwx |
| group::r-x |
| mask::rwx |
| other::r-x |
| default:user::rwx |
| default:user:egon:rwx |
| default:group::r-x |
| default:mask::rwx |
| default:other::r-x |
| |
| [root@egon opt] |
| getfacl: Removing leading '/' from absolute path names |
| |
| |
| |
| user::rw- |
| user:egon:rwx |
| group::r-x |
| mask::rw- |
| other::r-- |
| [root@egon opt] |