GNU/Linux >> Linux Esercitazione >  >> Linux

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

L'ho trovato:applicazione delle autorizzazioni predefinite

Dall'articolo:

  1. Imposta lo setgid bit, in modo che i file/la cartella in vengano creati con lo stesso gruppo di

    chmod g+s <directory>
    
  2. Imposta gli ACL predefiniti per il gruppo e altro

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

Successivamente possiamo verificare:

getfacl /<directory>

Uscita:

# 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

Questa è un'aggiunta alla risposta di Chris, si basa sulla mia esperienza con il mio impianto Arch Linux.

Utilizzando l'opzione predefinita (-d ) e l'opzione di modifica (-m ) modificherà solo i permessi predefiniti ma lascerà intatti quelli esistenti:

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

Se vuoi cambiare l'intera struttura dei permessi della cartella, inclusi quelli esistenti (dovrai fare una riga in più e renderla ricorsiva con -R ):

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

es.

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 markdwite nei commenti per la sintassi della riga di revoca di tutti i privilegi)


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

sudo usermod -a -G www-data $USER

È necessario riavviare/accedere di nuovo in modo che il gruppo appena aggiunto abbia effetto

cd /var/www

Aggiungi www-data come membro del gruppo della cartella html e il tuo utente come proprietario, in modo che sia di nostra proprietà oltre che membro del gruppo

sudo chown -R $USER:www-data html

Inserisci il tuo nome utente al posto di USER

Imposta i permessi di lettura, scrittura ed esecuzione come richiesto, (ugo) u=utente, g=gruppo, o=altri

sudo chmod 750 html

Imposta il GID di html, ora i file appena creati in html erediteranno i permessi di proprietà:

sudo chmod g+s html

Questo crea le regole predefinite per i file/directory 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 il requisito del contesto www-data in modo che consenta i permessi di scrittura

sudo setsebool -P httpd_unified 1

list directory per vedere le nuove autorizzazioni applicate

ls -ld html

Restituisce questo

drwxrwsr-x+   3 html www-data

Il + finale indica che ACL, Access Control List, è impostato sulla directory.

Riferimento :Collegamento al forum


Linux
  1. Linux:come impostare le autorizzazioni file predefinite per tutte le cartelle/file in una directory?

  2. Linux:problemi di autorizzazione per directory condivisa su un server?

  3. comando linux per svuotare tutti i file di una directory

  4. Come spostare tutti i file dalla directory corrente alla directory superiore?

  5. Come funzionano i permessi sui file per l'utente root?

Come copiare file e directory in Linux

Come eseguire il tar di tipi di file specifici (estensioni) in una directory

Come impostare i file zip delle password con il comando in tutti i sistemi operativi?

Come modificare tutte le occorrenze di una parola in tutti i file in una directory

Come posso impostare un nick predefinito per le nuove connessioni irssi?

setfacl per ripristinare le autorizzazioni predefinite del file?