ACL을 사용하는 디렉터리에서만 그룹+rx 권한을 사용합니까?

ACL을 사용하는 디렉터리에서만 그룹+rx 권한을 사용합니까?

acl매우 구체적인 권한 구조를 설정하려면 설치가 필요했습니다 . 그룹 구성원은 디렉터리의 파일을 볼 수 있고 하위 디렉터리로 이동할 수 있어야 합니다. 그러나 파일을 읽을 수 있는 권한이 있어서는 안 됩니다!

나는 이것을 달성하는 방법을 모른다. 이 명령은 setfacl -m d:g:mygroup:rx작업의 일부를 수행하지만 모든 파일을 읽을 수 있게 됩니다. 따라서 이 규칙을 폴더에만 적용하면 (drwxrwx---)나머지 모든 항목에는 액세스할 수 없습니다 (rw-------).

답변1

기본 ACL을 설정하여 그룹에 "실행 가능한 경우 실행"(X)을 부여하지만 읽기 권한은 부여하지 않을 수 있습니다.

setfacl -R -d -m group:mygroup:X .

이렇게 하면 새로 생성된 파일을 그룹에서 읽을 수 없지만 그룹은 디렉터리를 탐색할 수 있습니다. 그러나 그룹은 디렉터리 내용을 나열할 수 없습니다. 나는 이것이 Solaris/Linux ACL을 통해 얻을 수 있는 가장 가까운 것이라고 생각합니다.

이 ACL은 원하는 것보다 더 제한적이므로 이 ACL을 적용하고 나중에 디렉터리에 읽기 권한을 추가하는 것이 안전합니다. 자동으로 할 수 있어요inotify로, 예를 들어 다음 incrontab을 사용합니다.

/path/to/directory IN_CREATE /path/to/script $@

스크립트에 포함된 위치

#!/bin/sh
if [ -d "$1" ]; then setfacl -m group:mygroup:r -- "$1"; fi

또 다른 방법은 다른 권한을 가진 디렉터리 트리 보기를 만드는 것입니다.파일 시스템 바인딩. Bindfs는 디렉터리와 일반 파일에 대해 다양한 권한을 지원합니다.

bindfs -g mygroup -p gd=rx,gf= /path/to/original/root /path/to/mount/point

답변2

나중에 생성되는 모든 파일/디렉토리에 이 권한을 적용하려면 umask질문에 대한 첫 번째 의견의 조언을 따르십시오.

일회성 활동인 경우(이미 적절한 디렉터리와 파일이 있고 권한을 수정하려는 경우) find최상위 디렉터리에서 다음 명령을 사용할 수 있습니다.

# Give all permissions to all for the directories and    
# Revoke the permission for others    
find . -type d -exec chmod +rwx,o-rwx {} +    
# Unset all premissionas for all files and    
# Give read & write premission to the owners    
find . -type f -exec chmod -rwx,u+rw {} +    

를 사용하여 이러한 명령을 예약하는 것을 고려할 수 있지만 cron이는 좋은 생각이 아닌 것 같습니다. 예를 들어, 소유자가 아닌 사람은 다음 작업이 예약되기 전의 기간 동안 파일을 읽을 수 있습니다 cron.

답변3

약간 다른 각도에서 솔루션에 접근하여 다음과 같은 것을 사용할 수 있습니다.영국 크로나또는이노티콘(후자는 많은 배포판으로 포팅된 데비안 도구입니다). 이 두 가지 기능을 사용하면 디렉터리를 관찰하고 특정 주요 이벤트에 대한 파일 권한 변경을 조작할 수 있습니다. incron에 따르면 이를 위해서는 커널 2.6.13 이상이 필요하고 inotify를 컴파일해야 합니다. ubuntu, debian, Fedora에서 패키지로 제공되므로 설치가 쉽습니다(그리고 많은 배포판으로 포팅된 것으로 보입니다).

innotify의 incron 사용에 대한 좋은 기사가 있습니다.닉 크래프트

관련 정보