Soluzione 1:
Sì, gli ACL possono farlo.
-
Assicurati che il tuo filesystem sia montato con
acl
. Per verificarlo, digitamount
. Dovresti vedereacl
elencato tra le altre autorizzazioni, ad es./dev/sda1 on / type ext4 (rw,errors=remount-ro,acl)
Se non è montato con acl, apri
/etc/fstab
e aggiungiacl
all'elenco delle opzioni:# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> /dev/sda1 / ext3 noatime,errors=remount-ro,acl 0 1
Ora rimonta il filesystem in esecuzione con le nuove opzioni:
mount -v -o remount /
-
Installa le utility acl. Su ubuntu/debian, questo è:
sudo apt-get install acl
-
I tuoi nuovi amici sono
setfacl
egetfacl
. Usasetfacl
per modificare l'acl predefinito per una directory:setfacl -d -m o:r foo
-d
imposta il valore predefinito,-m
modifica acl eo:r
concede ad "altro" il diritto di leggere. L'impostazione di default su una directory equivale all'incirca all'impostazione di setgid su una directory, ma invece di file appena creati che ereditano il gruppo, ereditano l'acl. Insieme, setgid e acl possono essere potenti, perché puoi concedere autorizzazioni predefinite a un gruppo e ottenere che i file appena creati appartengano a quel gruppo, per un effettivo umask per directory basato su gruppo. -
Controlla il tuo lavoro:
ls -l
dovrebbe ora mostrare un "+" extra che indica la presenza di acl oltre ai permessi file standard.% ls -la foo/ drwxr--r--+
Puoi ottenere informazioni dettagliate sull'acl usando
getfacl
.% getfacl foo # file: foo # owner: you # group: you user::rwx group::r-- other::r-- default:user::rwx default:group::--- default:other::r--
Soluzione 2:
Puoi anche forzare un umask per la directory impostando la proprietà ACL della maschera in questo modo:
setfacl -d -m mask:07 .