ACL 기본값: 파일 및 디렉터리

ACL 기본값: 파일 및 디렉터리

디렉터리의 기본 ACL은 디렉터리 아래에 생성된 파일 및 하위 디렉터리에 상속됩니다.

이것은 일반적인 요구 사항인 것 같습니다. 하위 디렉터리는 기본적으로 실행 가능해야 하지만(예: CD) 파일은 그렇지 않아야 합니다.

하위 디렉터리 및 (하위)파일에 대해 별도의 기본(즉, 상속된) ACL을 설정하거나 이 효과를 얻으려면 어떻게 해야 합니까?

부록:
Raspberry Pi 모델 B, Raspbian, get/setfacl 2.2.51

cat /proc/version
Linux version 3.6.11+ (dc4@dc4-arm-01) (gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08) ) #474 PREEMPT Thu Jun 13 17:14:42 BST 2013

답변1

기본값만 있지만 파일이 ACL을 상속하면 프로그램이 쓰기 위해 파일을 열 때 설정한 모드를 기반으로 설정되는 마스크로 수정됩니다. (모드는 실제로 umask에 의해 수정됩니다. umask의 비트가 제거되므로 모드 666에 umask 002를 더하면 664가 됩니다.) 예를 들어 모드가 664인 경우 마스크로 인해 rw-x 플래그가 명명된 모든 acl에 대해 마스크되고 groups 이므로 실제로 실행 권한이 없습니다. 마스크는 패턴의 그룹 비트 또는 chmod(사용된 경우)의 그룹 비트를 기반으로 생성됩니다.

따라서 일반 파일을 생성하면 xACL에 설정되지만 차단됩니다. 기본적으로 디렉토리는 모드 755 또는 775(umask에 따라 다름)로 생성되므로 마스크는 rwx또는 가 됩니다 r-x. 따라서 ACL의 x 플래그는 여전히 유효합니다.

나는 수도에 대해 혼란스러워하곤 했습니다 X. 이는 ACL이 동시에 여러 파일에 설정된 경우에만 적용됩니다. 그런 다음 권한을 설정할 수 있습니다. 그러면 X디렉터리에는 권한이 있지만 x파일에는 권한이 없습니다.

답변2

ACL을 사용하여 다른 기본 파일 및 디렉터리 권한을 설정할 수 없습니다. 그러나 x권한도 문제가 되지 않습니다. 기본 ACL을 적절한 디렉터리 권한(예 rwx: , r-x또는 ---)으로 설정합니다. "visible"이 포함되지 않고 그에 따라 파일이 생성됩니다 x.

생성된 모든 파일 또는 디렉터리~ 해야 하다동반되는 파일 권한 모드(이 매개변수가 없으면 해당 시스템 호출을 호출할 수 없습니다). 대부분의 경우 해당 코드는 rw-rw-rw-파일 및 rwxrwxrwx디렉터리에 대한 권한 모드를 사용하며 권한 제거는 기본 ACL(또는 없는 경우 umask)에 그대로 둡니다.

기본 ACL(또는 umask)은 유효 권한을 추가하지 않고 일부만 제거합니다. 따라서 x기본 ACL에 xfor 디렉터리가 포함되어 있더라도 호출 코드의 for 선택이 존중됩니다.

관련 정보