ACL 이름이 지정된 그룹 권한은 파일 권한을 대체하지 않습니다. 왜?

ACL 이름이 지정된 그룹 권한은 파일 권한을 대체하지 않습니다. 왜?

간단히 말해서, 그룹의 모든 사용자가 해당 디렉터리에 있는 모든 파일에 대한 읽기 및 쓰기 실행 권한을 갖는 디렉터리가 있는 파일 서버를 만들려고 합니다. 내 연구에 따르면 ACL은 해당 작업에 적합한 도구이지만 예상대로 작동하지 않는 것 같은 문제에 직면했습니다.

저는 최신 Ubuntu Server LTS 16.04.1을 실행하고 있으며 문제의 드라이브에 대해 ACL이 활성화되어 있는지 확인했습니다.

이 예에서는 2명의 사용자가 있고 alexusera사용자 모두 그룹에 속합니다 fileserver. 다음과 같은 테스트 디렉터리를 만들었습니다.

alex@tstsvr:/$ sudo mkdir -p /srv/fstest/test
alex@tstsvr:/$ sudo chown root:fileserver /srv/fstest/test
alex@tstsvr:/$ sudo chmod 770 /srv/fstest/test

해당 디렉터리에서 alex간단한 테스트 파일을 만듭니다.

alex@tstsvr:/$ cd /srv/fstest/test/
alex@tstsvr:/srv/fstest/test$ echo 123 > test.txt
$ ll
total 12
drwxrwx--- 2 root fileserver 4096 Dec  7 17:09 ./
drwxr-xr-x 4 root root       4096 Dec  7 16:46 ../
-rw-rw-r-- 1 alex alex          4 Dec  7 17:09 test.txt

파일이 그 사람의 소유이고 그의 그룹에 속해 있음을 알 수 있습니다. 다음으로 그는 파일 권한을 설정 770하고 그룹이 fileserver파일에 대한 권한을 갖도록 일부 ACL을 설정합니다.rwx

alex@tstsvr:/srv/fstest/test$ chmod 770 test.txt
alex@tstsvr:/srv/fstest/test$ setfacl -m g:fileserver:rwx test.txt
alex@tstsvr:/srv/fstest/test$ ll
total 12
drwxrwx---  2 root fileserver 4096 Dec  7 17:09 ./
drwxr-xr-x  4 root root       4096 Dec  7 16:46 ../
-rwxrwx---+ 1 alex alex          4 Dec  7 17:09 test.txt*

이제 모든 것이 잘 작동하는 것 같습니다 usera.

usera@tstsvr:/srv/fstest/test$ getfacl test.txt
# file: test.txt
# owner: alex
# group: alex
user::rwx
group::rw-
group:fileserver:rwx
mask::rwx
other::---

usera@tstsvr:/srv/fstest/test$ cat test.txt
123

그러나 사용자가 alex권한을 700...로 변경하면:

alex@tstsvr:/srv/fstest/test$ chmod 700 test.txt

ACL은 이러한 권한을 재정의할 수 없는 것으로 보이며 usera더 이상 파일을 읽을 수 없습니다.

usera@tstsvr:/srv/fstest/test$ getfacl test.txt
# file: test.txt
# owner: alex
# group: alex
user::rwx
group::rw-          #effective:---
group:fileserver:rwx        #effective:---
mask::---
other::---

usera@tstsvr:/srv/fstest/test$ cat test.txt
cat: test.txt: Permission denied

내가 이해한 바는 파일에 명명된 그룹 ACL 항목이 있기 때문에 해당 파일 권한을 재정의하지만 그렇지 않은 것 같습니다.

제가 뭔가 잘못하고 있는 건가요, 제가 오해하고 있는 건가요, 아니면 실제로 불가능한 건가요?

답변1

posix 권한은 acl보다 우선합니다. 따라서 acl을 제공한 후 파일을 chmod하면 acl 마스크가 변경됩니다. 다음은 훌륭한 기사입니다. https://serverfault.com/questions/352783/why-does-chmod1-on-the-group-affect-the-acl-mask

답변2

파일에 acl 권한을 적용한 후 처음 11자가 무엇을 의미하는지 설명하겠습니다.

-rwxrwx---+ 1 alex alex          4 Dec  7 17:09 test.txt*

10자 권한 문자열 끝에 있는 +는 파일과 연결된 ACL 설정이 있음을 나타냅니다. 사용자, 그룹 및 기타 "rwx" 플래그를 다음과 같이 해석합니다.

  • 사용자: 표준 사용자 파일 설정과 동일한 사용자 ACL 설정을 표시합니다.
  • 그룹: 그룹 소유자 설정 대신 현재 ACL 마스크 설정을 표시합니다.
  • 다른: 표준 기타 파일 설정과 동일한 추가 ACL 설정을 표시합니다. 접근 금지.

중요한

ACL을 사용하여 파일에 대한 그룹 권한 변경chmod그룹 소유자 권한은 변경되지 않지만 ACL 마스크는 변경됩니다.

소유자 그룹 권한을 변경하려면 다음을 사용하세요.setfacl -mg::perms 파일

다음 명령을 사용하여 그룹 소유자 권한을 변경할 수 있습니다.

chmod 700 test.txt
  • 7(rwx)파일 소유자 권한 변경
  • 0 (---) ACL 마스크를 변경합니다.
  • 0 (---) 기타 권한 변경

아래 명령에 따라 위 명령을 변경하십시오.

setfacl -m g::--- text.txt

ACL 권한을 신청한 후setfacl -mg::perms 파일소유자 그룹 권한을 변경하는 유일한 방법입니다.

명명된 사용자, 명명된 그룹 및 소유자 그룹권한 컨트롤러ACL 마스크

마스크 권한을 0(---)으로 변경했기 때문에 name-group(fileserver)의 유효 권한은 0(---)입니다.

관련 정보