FreeBSD ACL과 Linux ACL의 동작 차이를 이해하려고합니다. 특히 기본 ACL에 대한 상속 메커니즘.
데비안 9.6과 FreeBSD 12에서 다음을 사용했습니다.
$ cat test_acl.sh
#!/bin/sh
set -xe
mkdir storage
setfacl -d -m u::rwx,g::rwx,o::-,m::rwx storage
touch outside
cd storage
touch inside
cd ..
ls -ld outside storage storage/inside
getfacl -d storage
getfacl storage
getfacl outside
getfacl storage/inside
umask
데비안 9.6에서 다음과 같은 결과가 나옵니다.
$ ./test_acl.sh
+ mkdir storage
+ setfacl -d -m u::rwx,g::rwx,o::-,m::rwx storage
+ touch outside
+ cd storage
+ touch inside
+ cd ..
+ ls -ld outside storage storage/inside
-rw-r--r-- 1 aaa aaa 0 Dec 28 11:16 outside
drwxr-xr-x+ 2 aaa aaa 4096 Dec 28 11:16 storage
-rw-rw----+ 1 aaa aaa 0 Dec 28 11:16 storage/inside
+ getfacl -d storage
# file: storage
# owner: aaa
# group: aaa
user::rwx
group::rwx
mask::rwx
other::---
+ getfacl storage
# file: storage
# owner: aaa
# group: aaa
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::rwx
default:mask::rwx
default:other::---
+ getfacl outside
# file: outside
# owner: aaa
# group: aaa
user::rw-
group::r--
other::r--
+ getfacl storage/inside
# file: storage/inside
# owner: aaa
# group: aaa
user::rw-
group::rwx #effective:rw-
mask::rw-
other::---
+ umask
0022
주목하라 있다는 outside
및 inside
파일은 서로 다른 권한이 있습니다. 특히, outside
파일은 -rw-r--r--
이 사용자에 대한 기본값이며 inside
파일은 -rw-rw----
내가 지정한 기본 ACL에 따라storage
디렉토리를 입니다.
FreeBSD 12에서 동일한 스크립트의 출력 :
$ ./test_acl.sh
+ mkdir storage
+ setfacl -d -m u::rwx,g::rwx,o::-,m::rwx storage
+ touch outside
+ cd storage
+ touch inside
+ cd ..
+ ls -ld outside storage storage/inside
-rw-r--r-- 1 aaa aaa 0 Dec 28 03:16 outside
drwxr-xr-x 2 aaa aaa 512 Dec 28 03:16 storage
-rw-r-----+ 1 aaa aaa 0 Dec 28 03:16 storage/inside
+ getfacl -d storage
# file: storage
# owner: aaa
# group: aaa
user::rwx
group::rwx
mask::rwx
other::---
+ getfacl storage
# file: storage
# owner: aaa
# group: aaa
user::rwx
group::r-x
other::r-x
+ getfacl outside
# file: outside
# owner: aaa
# group: aaa
user::rw-
group::r--
other::r--
+ getfacl storage/inside
# file: storage/inside
# owner: aaa
# group: aaa
user::rw-
group::rwx # effective: r--
mask::r--
other::---
+ umask
0022
(참고 데비안 은 FreeBSD에서 사용하지 않는 곳을 getfacl
사용하지 않더라도 기본 ACL을 표시 -d
하지만 실제 ACL은 생각하지 않습니다.storage
이 다른 것으로 .)
여기에서 파일 outside
과 inside
파일은 서로 다른 권한을 갖지만, inside
파일에는 데비안 버전의 그룹 쓰기 권한이 없습니다. 아마도 데비안 w
의 마스크가 FreeBSD의 마스크에서를 잃어 버렸기 때문일 것입니다 w
.
FreeBSD는 왜 w
마스크를 잃었 지만 데비안은 그것을 유지 했습니까?
g+s
)를 사용하지 않는 경우에도 동일하게 작동합니까 ?
getfacl
정보 를 표시하기 위해 원래의 질문 내용을 업데이트했습니다 .
getfacl storage
두 시스템 모두에 무엇이 표시됩니까?