setfacl을 사용하여 기본 권한 설정

setfacl을 사용하여 기본 권한 설정

를 사용하여 내 디렉터리 구조에 대한 기본 권한을 설정하려고 합니다 acl. 디렉토리와 파일에 대해 각각 다음과 같은 기본 권한을 갖고 싶습니다.

drwx--x---
-rw-r-----

group하지만 기본 권한을 다음에 만 설정하면 x:

setfacl -R -d -m g::x my_dir

새로 생성된 디렉토리에는 원하는 권한이 있지만 새로 생성된 파일 -rw-------에는 -rw-r-----. 즉, 파일에 대한 권한은 r유지하면서 디렉터리에서 권한을 제거하려고 합니다.r

어떻게 이를 달성할 수 있습니까?

답변1

Linux/Solaris ACL은 이를 지원하지 않습니다. 파일 및 디렉터리에 대해 서로 다른 기본 ACL을 설정할 수 없습니다.

탐색할 수 있지만 내용을 나열할 수 없는(실행 가능하지만 읽을 수 없는) 디렉터리가 있는 경우는 거의 유용하지 않습니다. 그것이 전혀 작동한다는 사실은 약간의 역사적 사고입니다. 예, 가끔 유용할 수 있습니다. 하지만 정말 필요합니까? (이건 별도의 질문으로 물어봐도 됩니다.)

권한이 다른 디렉터리와 파일이 정말로 필요한 경우 고려할 수 있는 몇 가지 가능성은 다음과 같습니다.

  • 고유한 파일 시스템 속성에 의존하는 대신 애플리케이션이 생성하는 파일의 소유권을 변경하도록 하세요.
  • 기본적으로 모든 것을 비공개로 설정하고( setfacl -d -m group:mygroup:X) 다음 제안 중 하나를 사용하세요.ACL을 사용하는 디렉토리에서만 그룹+rx 권한이 있습니까?:

    • 직접적으로가 아닌 바인드 마운트를 통해 그룹 공용 파일을 노출합니다.
    • inotify로 트리를 관찰하고 setfacl새로운 일반 파일을 실행하세요.

답변2

setfaclnor umask둘 다 파일과 디렉터리에 대해 별도의 기본값을 허용하지 않는 것 같기 때문에 둘 다 사용하면 그렇게 할 수 없는 것 같습니다 .다른 옵션에 대해서는 비슷한 질문을 참조하세요.. 일부 응용 프로그램이 읽기 권한과 파일 없이 디렉터리를 만들도록 하려면 이를 수정하거나 바이너리 파일만 제공하여 LD_PRELOAD를 시도할 수 있습니다(이를 위한 lib를 작성하는 것은 약간 과잉일 수 있음).

관련 정보