Linux nu acceptă moștenirea permisiunii, așa că nu puteți face ceea ce ați cerut în subiectul de întrebare.
Cel mai bun lucru pe care îl puteți face este să setați implicit POSIX ACL care se va aplica tuturor fișierelor și directoarelor nou create. Aceasta nu este moștenirea, doar implicit:
setfacl -m default:user:<nume utilizator>:rwx <dir>
setfacl -m default:group:<nume grup>:rwx <dir>
După aceasta, dacă cineva creează un fișier sau un director în (dacă i se permite să creeze obiecte acolo, desigur), acel obiect va primi ACL suplimentar utilizator:<nume utilizator>:rwx
și grup:<nume grup>:rwx
. Puteți seta permisiunile implicite pentru proprietar și proprietarul grupului prin setare <username>
și <groupname>
gol.
Acest „implicit” ar putea fi setat doar pe un director, deoarece nu are rost să aplici acest lucru la fișiere. Permisiunile setate în acest fel sunt, de asemenea, mascate cu umasks, așa că dacă un bit este aruncat în umask, acest bit va fi eliminat dintr-o permisiune. De exemplu, când creați un fișier, dacă nu îi dați bit executabil, acesta nu va deveni executabil (cum era de așteptat). Subdirectoarele create vor avea, de asemenea, aceleași ACL-uri „implicite”, astfel încât descendenții săi vor avea și aceste ACL-uri setate. Trebuie să eliminați sau să modificați ACL-urile din subdirectoare după creare pentru a opri această propagare.
Verificați ACL-ul cu getfacl <dir>
. Desigur, ar putea exista mai multe astfel de valori implicite (și se pare că trebuie să ajungeți cu mai multe reguli); cel puțin, cerințele pe care le-am întâlnit impuneau întotdeauna prezența a cel puțin două ACL-uri de grup implicite).
Tu nu poti setați „proprietari impliciti de fișiere” în acest fel, proprietarul va fi întotdeauna setat să creeze un uid eficient al procesului. În mod implicit, proprietarul grupului va fi setat să proceseze gid, dar îl puteți modifica folosind setgid bit în directorul părinte:
chmod g+s <dir>
după aceea, orice obiect creat în acel director își va copia în mod implicit proprietarul grupului, chiar dacă utilizatorul creat nu aparține acelui grup. Acest bit setgit se propagă în subdirectoare.
Proprietarii pot seta proprietarul grupului oricărui grup căruia îi aparțin. Dacă nu aparțin grupului derivat de setgid, își pot schimba proprietarul grupului de fișiere în orice grup din care aparțin, dar după aceea nu îl vor putea schimba înapoi în valoarea setgid.
Vreau să notez din nou în mod explicit, aceasta este nu o moștenire, aceasta este setarea implicită care nu este exact aceeași. Dacă apoi modificați ceva pe obiectul părinte, obiectele deja create își vor păstra întotdeauna permisiunile în Linux.
În timp ce, de exemplu, în Windows, când setați ACL-uri sub-obiect la „moștenire”, modificarea ACL-urilor părinte va afecta descendenții, care este moștenirea adecvată.