Come impostare le autorizzazioni di file predefinite per tutte le cartelle / file in una directory?


254

Voglio impostare una cartella in modo tale che qualsiasi cosa creata al suo interno (directory, file) erediti le autorizzazioni e il gruppo predefiniti.

Consente di chiamare il gruppo "media". Inoltre, le cartelle / i file creati all'interno della directory dovrebbero avere g + rw automaticamente.


1
Non è controllato dall'utente che crea il nuovo file / cartella e la sua umask?
Wadih M.

umask si riferisce alle autorizzazioni ma non credo che faccia nulla con l'impostazione di un gruppo predefinito che non è l'utente stesso.
Chris,

1
Quale sistema operativo? Tag necessari. setfacle gli ACL predefiniti non esistono su AIX.
Amit Naidu,

Risposte:


269

L'ho trovato: Applicazione delle autorizzazioni predefinite

Dall'articolo:

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

Successivamente possiamo verificare:

getfacl /<directory>

Produzione:

# 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

5
Yay per la parte appiccicosa!
gabe.

22
Consente di non confondere gid con bit appiccicoso.
Amit Naidu,

10
g + s assicurerà che il nuovo contenuto nella directory erediti la proprietà del gruppo. setfacl cambia solo chmod, nel tuo caso imposta l'autorizzazione a o = rx
Steen Schütt

10
Notare che ACL deve essere abilitato (incluso come una delle opzioni di mount per il file system montato) affinché le autorizzazioni dei file vengano ereditate.
sg23,

11
Potresti prendere in considerazione l'uso di "X" invece in modo da impostare l'autorizzazione di esecuzione solo per le directory e non per i filesetfacl -d -m g::rwX /<directory>
Adrian Gunawan

27

Questa è un'aggiunta alla risposta di Chris, basata sulla mia esperienza sul mio rig Arch Linux.

L'utilizzo dell'interruttore predefinito (-d) e dell'interruttore di modifica (-m) modificherà solo le autorizzazioni predefinite ma lascerà intatte quelle esistenti:

setfacl -d -m g::rwx /<directory>

Se si desidera modificare l'intera struttura delle autorizzazioni della cartella, comprese quelle esistenti (è necessario fare una riga aggiuntiva e renderla ricorsiva -R:

setfacl -R -m g::rwx /<directory>

per esempio.

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. 

( CREDITO per markdwite nei commenti per la sintassi della riga revoca tutti i privilegi)


2
Per revocare i privilegi di gruppo (come esempio): sudo setfacl -d -mg :: --- / path
markdwhite

1
è solo un refuso che specifica setfacl -R -m g::rwx /<directory>due volte nella tua risposta?
Shane Rowatt,

0

Aggiungi te stesso / utente registrato al gruppo www-data, in modo che possiamo lavorare con i file creati dal server www-data

sudo usermod -a -G www-data $USER

È necessario riavviare / accedere nuovamente per rendere effettivo il gruppo appena aggiunto

cd /var/www

Aggiungi i dati www come membro del gruppo della cartella html e il tuo utente come proprietario, quindi ne siamo proprietari così come membri del gruppo

sudo chown -R $USER:www-data html

Inserisci il tuo nome utente al posto di USER

Impostare leggi, scrivi, esegui l'autorizzazione come richiesto, (ugo) u = utente, g = gruppo, o = altri

sudo chmod 750 html

Impostare il GID di HTML, ora, i file appena creati in HTML erediteranno le autorizzazioni di proprietà:

sudo chmod g+s html

Questo crea le regole predefinite per i file / dir appena creati all'interno della directory html e delle sottodirectory.

sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html

Crea SELinux se installato, ignora i requisiti del contesto www-data in modo da consentire le autorizzazioni di scrittura

sudo setsebool -P httpd_unified 1

directory list per vedere le nuove autorizzazioni applicate

ls -ld html

Restituisce questo

drwxrwsr-x+   3 html www-data

Il segno finale + indica che ACL, Elenco controllo accessi, è impostato sulla directory.

Riferimento : collegamento al forum


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.