그룹에 대한 rwx 기본 권한을 설정하고 파일에 대한 rw 기본 권한만 설정

그룹에 대한 rwx 기본 권한을 설정하고 파일에 대한 rw 기본 권한만 설정

rw-rw-r--포함된 모든 일반 파일과 rwxrwxr-x포함된 모든 디렉터리 에 대한 권한이 있어야 하는 디렉터리 모음이 있습니다 . 비슷한 방법을 사용하여 모든 일반 파일과 디렉터리에 대한 기본 권한을 설정할 수 있지만 setfacl -R -d -m g::rw /directory/name이렇게 하면 새 파일과 새 디렉터리에 대한 기본 권한이 동일한 값으로 설정되므로 원하지 않습니다.

rwx그룹 기본 권한은 있지만 파일 기본 권한만 있는 파일 시스템 블록을 만드는 방법은 무엇입니까 rw?

답변1

모든 항목에 대해 플래그를 설정 하면 x사용자 "만들기" 권한도 적용됩니다. 이는 일반적으로 파일에 플래그가 없음을 의미합니다 x.

$ setfacl -d -m u::rwx .
$ setfacl -d -m g::rwx .
$ setfacl -d -m o::rx . 
$ getfacl .
# file: .
# owner: sweh
# group: sweh
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

$ mkdir DIR
$ ls -ld DIR
drwxrwxr-x+ 2 sweh sweh 4096 Aug 10 20:05 DIR
$ touch file
$ ls -l file
-rw-rw-r-- 1 sweh sweh 0 Aug 10 20:05 file
$ touch DIR/file
$ ls -l DIR/file
-rw-rw-r-- 1 sweh sweh 0 Aug 10 20:06 DIR/file

이는 umask가 변경된 후에도 지속됩니다.

$ umask 077
$ mkdir DIR2
$ ls -ld DIR2
drwxrwxr-x+ 2 sweh sweh 4096 Aug 10 20:08 DIR2
$ touch file3
$ ls -l file3
-rw-rw-r-- 1 sweh sweh 0 Aug 10 20:08 file3
$ > file4
$ ls -l file4
-rw-rw-r-- 1 sweh sweh 0 Aug 10 20:08 file4

새로 생성된 디렉터리는 기본 ACL을 상속합니다.

$ getfacl DIR2
# file: DIR2
# owner: sweh
# group: sweh
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

x그러나 이렇게 해도 컴파일된 프로그램에서 플래그가 제거 되지는 않습니다 .

$ gcc -o x x.c
$ ls -l x
-rwxrwxr-x 1 sweh sweh 6680 Aug 10 20:12 x

gcc이 경우에는 a chmod및 so가 기본값을 재정의하기 때문입니다 .

open("x", O_RDWR|O_CREAT|O_TRUNC, 0666) = 3
....
chmod("x", 0775) 

관련 정보