사용자(예: userone)와 권한 setgid 775를 가진 그룹(예: groupone)이 소유한 Linux 시스템에 디렉터리(예: 데이터)가 있습니다. 이제 userone이 새 디렉터리를 생성할 때마다 그룹의 권한을 상속하지 않습니다. userone이 새 디렉터리를 만들 때마다 그룹의 권한이 상속되기를 원합니다. 어떻게 해야 하나요?
이제 userone이 디렉터리를 생성할 때마다 그룹 사용자에 대한 쓰기 권한을 잃게 됩니다.
0 drwxr-sr-x. 2 userone groupone 6 Dec 8 02:49 tests
답변1
그렇다면 해당 디렉터리에 생성된 파일/디렉터리가 상위 디렉터리의 권한을 상속받길 원한다는 뜻인가요?
이렇게 하려면 기본 ACL(acl(5)
):
기본 ACL이 디렉터리와 연결된 경우 파일 개체를 생성한 함수의 모드 매개변수와 디렉터리의 기본 ACL을 사용하여 새 개체의 ACL을 결정합니다.
- 새 개체는 포함 디렉터리의 기본 ACL을 액세스 ACL로 상속합니다.
그래서,setfacl(1)
, 이 -d
플래그는 기본 ACL을 수정하도록 지시합니다.
$ ls -ld data
drwxrwsr-x+ 2 userone groupone 4096 Dec 8 18:36 data/
$ setfacl -d -m u::rwx,g::rwx,o::r-x data
$ getfacl data
# file: data
# owner: userone
# group: groupone
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
일단 설정되면 디렉터리에 생성된 새 파일이나 디렉터리는 기본 ACL에서 권한을 얻습니다. 이는 umask
파일을 생성한 프로세스의 모드를 재정의하지만 open()
/ mkdir()
등에 할당된 파일 모드는 재정의하지 않습니다. 시스템 호출.
$ mkdir data/test
$ ls -ld data/test
drwxrwsr-x+ 2 userone groupone 4096 Dec 8 18:38 data/test/
마운트할 때 마운트 옵션을 사용하여 파일 시스템에서 ACL을 활성화해야 할 수도 있습니다 acl
.
답변2
마운트 시 ACL 설정은 해당 마운트에 대한 /etc/fstab 라인을 통해 수행됩니다. 자세한 내용은 man fstab을 참조하세요. 네 번째 인수에 있습니다. 가능한 값은 파일 시스템에 따라 달라지며, 이는 man mount에서 찾을 수 있습니다. ext2/3/4의 경우 추가된 옵션은 acl 또는 noacl입니다. (위 내용은 댓글이어야 하는데 댓글을 달 수 없습니다.)