여러 기본 그룹에 ACL 사용

여러 기본 그룹에 ACL 사용

비슷한 질문에 대한 답변을 찾아보고 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@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

답변1

가, 얼굴을 가려라! 이 -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이 구성원을 허용하는지 테스트개발자단체 이용 ls.

user@host:/srv$ ls lib/
ls: cannot open directory lib/: Permission denied

-d(기본) 스위치 없이 디렉터리에 새 ACL을 추가합니다 .

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::---

이 문제에 대해 추가 정보를 얻으면 기쁠 것입니다.

관련 정보