J'essaie de comprendre la différence de comportement entre les ACL FreeBSD et les ACL Linux. En particulier, le mécanisme d'héritage pour les ACL par défaut.
J'ai utilisé ce qui suit sur Debian 9.6 et 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
J'obtiens la sortie suivante de Debian 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
Notez que les fichiers outsideet insideont des autorisations différentes. En particulier, le outsidefichier a -rw-r--r--, qui est la valeur par défaut pour cet utilisateur et le insidefichier a -rw-rw----, en respectant les ACL par défaut que j'ai attribuées au storagerépertoire.
La sortie du même script sur 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
(Notez que Debian getfaclaffichera également les ACL par défaut même si vous n'utilisez pas où contrairement à -dFreeBSD, mais je ne pense pas que les ACL réelles pour storagesoient différentes.)
Ici, les fichiers outsideet insideont également des autorisations différentes, mais le insidefichier n'a pas l'autorisation d'écriture de groupe que la version Debian fait, probablement parce que le masque dans Debian a conservé le wtandis que le masque dans FreeBSD a perdu le w.
Pourquoi FreeBSD a-t-il perdu le wmasque mais Debian l'a conservé?
g+s)?
getfaclinformations.
storage, ls devrait montrer+ , de même je pense getfaclsortie soit semblable à ce que vous avez sur le système Debian. Le setfaclcode de sortie de réussite a- t-il été renvoyé?
getfacl storagemontre- t -on sur les deux systèmes?