setfacl 이후에는 기본 권한이 고려되지 않습니다.

setfacl 이후에는 기본 권한이 고려되지 않습니다.

기본적으로 내 폴더 hackerrank에 생성된 모든 파일이 rwx로 생성되도록 기본 권한을 설정하려고 합니다.

나는 하나를 만들었습니다 chmod g+s(다른 스레드를 보고 있기 때문에 솔직히 이것이 무엇을 하는지는 잘 모르겠지만 혹시라도 변경될 경우를 대비해):

chmod g+s hackerank/

그런 다음 그룹에 기본 ACL을 설정해 보세요.

setfacl -d -m g::rwx hackerank/

ACL을 확인하면 이제 괜찮아 보입니다.

getfacl hackerank/
# file: hackerank/
# owner: will
# group: will
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:will:rwx
default:mask::rwx
default:other::r-x

하지만 새 파일을 생성했는데 여전히 상속됩니다 -rw-rw-r--+(+유효한 ACL 속성 표시:

touch hackerank/test
ll hackerank/
total 8.0K
drwxrwsr-x+ 2 will will 4.0K Jul 11 16:09 ./
drwxr-xr-x  3 will will 4.0K Jul 11 15:03 ../
-rw-rw-r--+ 1 will will    0 Jul 11 16:09 test

getfacl hackerank/test
# file: hackerank/test
# owner: will
# group: will user::rw-
group::rwx  #effective:rw-
group:will:rwx  #effective:rw-
mask::rw-
other::r--

내가 놓친 것에 대한 단서가 있습니까?

당신의 도움을 주셔서 감사합니다

답변1

두 달 전의 이 질문도 참조하세요.ACL을 사용하여 "x"(실행 가능) 비트 설정. 공식 문서에 정의된 위치에 대한 좋은 포인터가 있습니다.일카츄의 답변.


응용 프로그램은 지정된 모드에서 파일을 생성합니다. 그런 다음 패턴은 현재 제한으로 제한되지만 확장되지는 않습니다 umask.

strace touch a
...
open("a", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3

umask예를 들어 위에서 생성된 파일을 0664/-rw-rw-r--( view 사용 )로 제한하는 002 파일이 있습니다 stat a.

내 이해는 이것이 ACL도 제한한다는 것입니다. ACL은 파일 모드를 읽을 때 표시되는 것 이상의 권한을 허용하지 않습니다.

will그룹별 파일 액세스는 를 초과할 수 없습니다 rw-. 이는 maskgetfacl 출력의 "유효한" 주석을 설명하는 ACL에 의해 시행됩니다. 편집: 마스크는 "user::"(파일 소유자) 및 "other:"를 제외한 모든 ACL 항목에 적용됩니다. 이러한 모든 ACL 항목에는 마스크가 적용됩니다.

will이외의 사용자 및 그룹에 대한 액세스 권한은 을(를) will초과할 수 없습니다 r--.

관련 정보