FreeBSD ACL'leri ve Linux ACL'leri arasındaki davranış farkını anlamaya çalışıyorum. Özellikle, varsayılan ACL'ler için kalıtım mekanizması.
Debian 9.6 ve FreeBSD 12'de aşağıdakileri kullandım:
$ 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
Debian 9.6'dan şu çıktıyı alıyorum:
$ ./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
Ve inside
dosyalarının farklı izinleri olduğuna dikkat edin . Özellikle, outside
dosya vardır -rw-r--r--
, bu kullanıcı için varsayılan ve hangi inside
dosya vardır -rw-rw----
ACL ı atanan varsayılan saygı, storage
dizin.
FreeBSD 12'de aynı betiğin çıktısı:
$ ./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
(Debian'ın , FreeBSD olarak getfacl
kullanmadığı -d
yerlerde bile varsayılan ACL'leri göstereceğini unutmayın, ancak gerçek ACL'lerin storage
farklı olduğunu düşünmüyorum .)
Burada outside
ve inside
dosyaları da farklı izinlere sahiptir, ancak inside
dosya Debian sürümünün yaptığı grup yazma iznine sahip değildir, çünkü muhtemelen Debian'daki w
maske FreeBSD'deki maske kayboldu w
.
FreeBSD w
maskeyi neden kaybetti ama Debian onu korudu?
g+s
) kullanmıyorsanız bu aynı şekilde çalışır mı ?
getfacl
Bilgileri göstermek için orijinal soru içeriğini güncelledim .
storage
, ls
göstermeliyim+
, benzer şekilde getfacl
çıktıların Debian sistemindekilere benzer olmasını beklerdim . Mü setfacl
dönüş başarı çıkış kodu?
getfacl storage
Her iki sistemde ne gösteriliyor?