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