通过阅读有关Linux ACL的教程,我了解了类似问题的答案,并刷新了我对ACL的记忆。但是,我仍然很困惑。我做错了什么,或者我不明白什么?
我有一个装有该acl
选件的文件系统。
user@host:/srv$ grep srv /etc/fstab
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /srv ext4 relatime,nodev,nosuid,user_xattr,acl 0 2
用户user是devs组的成员。
user@host:/srv$ id
uid=1000(user) gid=1000(user) groups=1000(user),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),1001(devs)
umask是正常的。
user@host:/srv$ umask
0022
目录已创建;设置组所有权和权限。
user@host:/srv$ sudo mkdir lib; sudo chmod 0750 lib && sudo chgrp www-data lib
user@host:/srv$ ls -l
total 24
drwxr-x--- 2 root www-data 4096 May 21 18:00 lib
drwx------ 2 root root 16384 Feb 17 18:22 lost+found
drwxr-xr-x 3 root www-data 4096 May 21 17:25 www
ACL将应用于新目录。
user@host:/srv$ sudo setfacl -d -m g:devs:5 lib/
user@host:/srv$ getfacl lib
# file: lib
# owner: root
# group: www-data
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:group:devs:r-x
default:mask::r-x
default:other::---
我认为我应该能够获得目录列表,但是我不能。
user@host:/srv$ ls lib/
ls: cannot open directory lib/: Permission denied
Gah-facepalm!该-d
开关用于lib目录中的新文件和目录。必须为lib目录本身定义一个显式ACL。
删除ACL。
user@host:/srv$ sudo setfacl -b lib
user@host:/srv$ ls -l
total 24
drwxr-x--- 2 root www-data 4096 May 21 19:06 lib
drwx------ 2 root root 16384 Feb 17 18:22 lost+found
drwxr-x--- 3 root www-data 4096 May 21 17:25 www
设置默认ACL。
user@host:/srv$ sudo setfacl -d -m g:devs:5 lib/
user@host:/srv$ getfacl lib
# file: lib
# owner: root
# group: www-data
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:group:devs:r-x
default:mask::r-x
default:other::---
测试ACL是否允许devs组的成员使用ls
。
user@host:/srv$ ls lib/
ls: cannot open directory lib/: Permission denied
为目录添加一个新的ACL,不带-d
(默认)开关。
user@host:/srv$ sudo setfacl -m g:devs:5 lib/
user@host:/srv$ ls lib/
user@host:/srv$ ls -l lib/
total 0
将文件复制到lib目录中。
user@host:/srv$ sudo cp /etc/hostname lib/
user@host:/srv$ cat lib/hostname
host
显示权限。
user@host:/srv$ ls -l lib/
total 4
-rw-r-----+ 1 root root 6 May 21 19:15 hostname
显示ACL。
user@host:/srv$ getfacl lib/hostname
# file: lib/hostname
# owner: root
# group: root
user::rw-
group::r-x #effective:r--
group:devs:r-x #effective:r--
mask::r--
other::---
我很高兴收到关于此的任何进一步的见解。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句