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)