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

setfacl둘 다 umask파일과 디렉터리에 대해 별도의 기본값을 허용하지 않는 것처럼 보이 므로 이 작업을 수행할 수 없는 것 같습니다 .다른 옵션에 대해서는 비슷한 질문을 참조하세요.. 특정 응용 프로그램이 읽기 권한이 없는 디렉터리와 읽기 권한이 있는 파일을 생성하도록 하려면 이를 수정하거나 바이너리만 제공된 LD_PRELOAD를 시도할 수 있습니다(이를 위한 라이브러리를 작성하는 것은 약간 과잉일 수 있음).

관련 정보