Želim nastaviti mapo tako, da vse, kar je ustvarjeno v njej (imeniki, datoteke), podeduje privzeta dovoljenja in skupino.
Poimenujmo to skupino "media". Poleg tega morajo imeti mape/datoteke, ustvarjene v tem imeniku, samodejno g+rw.
Našel sem ga: Uporaba privzetih dovoljenj
Iz članka:
chmod g+s <directory> //set gid
setfacl -d -m g::rwx /<directory> //set group to rwx default
setfacl -d -m o::rx /<directory> //set other
Nato lahko preverimo:
getfacl /<directory>
Rezultat:
# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
To je dodatek h Chrisovemu odgovoru, ki temelji na mojih izkušnjah na moji ploščadi Arch Linux.
Uporaba privzetega stikala (-d) in stikala modify (-m) bo spremenila samo privzeta dovoljenja, obstoječa pa bodo ostala nedotaknjena:
setfacl -d -m g::rwx /<directory>
Če želite spremeniti celotno strukturo dovoljenj mape, vključno z obstoječimi (morali boste narediti dodatno vrstico in jo narediti rekurzivno -R:
setfacl -R -m g::rwx /<directory>
npr.
setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else.
(CREDIT za markdwite v komentarjih za sintakso vrstice za odvzem vseh privilegijev)
Z naslednjim ukazom lahko nastavite privzeto dovoljenje za datoteko:
chacl -R filename