Introduzione
I sistemi multiutente, come Linux, richiedono la configurazione e la gestione di autorizzazioni per i file che garantiscano che solo gli utenti autorizzati abbiano accesso ai file che dovrebbero.
Se devi modificare un'autorizzazione per un file, usa il chmod
comando. Consente inoltre di modificare l'autorizzazione del file in modo ricorsivo per configurare più file e sottodirectory utilizzando un unico comando.
In questo tutorial imparerai come utilizzare chmod in modo ricorsivo e modificare i permessi dei file su Linux.

Prerequisiti
- Una riga di comando/finestra del terminale (Ctrl +Alt +T o CTRL +Alt+F2 )
- Un account utente con sudo privilegi (opzionale)
- Un sistema Linux
Verifica autorizzazione file
Se hai bisogno di controllare i permessi dei file nella directory di lavoro, usa il comando:
ls –l
L'output elenca i permessi di tutti i file nella directory.
Ad esempio, l'Esempio contiene tre file (test1.txt , test2.txt e test3.txt ) con le stesse autorizzazioni (-rw-rw-r– ).

I permessi dei file sopra elencati ci dicono quanto segue:
- Il proprietario ha i privilegi di lettura e scrittura
- Il gruppo del proprietario ha i privilegi di lettura e scrittura
- Altri utenti avere i privilegi di lettura
Cambia l'autorizzazione in modo ricorsivo
È comune utilizzare il chmod
di base comando per modificare i permessi di un singolo file. Tuttavia, potrebbe essere necessario modificare l'autorizzazione in modo ricorsivo per tutti i file all'interno di una directory.
In questi casi, il chmod ricorsivo opzione (-R
o --recursive
) imposta l'autorizzazione per una directory (e i file che contiene).
La sintassi per modificare l'autorizzazione del file in modo ricorsivo è:
chmod -R [permission] [directory]
Pertanto, per impostare il 755 autorizzazione per tutti i file nell'Esempio directory, dovresti digitare:
sudo chmod -R 755 Example
Il comando fornisce lettura, scrittura ed esecuzione privilegi al proprietario (7 ) e leggere ed eseguire accesso a tutti gli altri (55 ).

Cambia l'autorizzazione con il comando trova
Per assegnare autorizzazioni separate a directory e file, puoi utilizzare il find
comando.
La sintassi di base include l'utilizzo di find
comando per individuare file/directory e poi passarlo a chmod
per impostare l'autorizzazione:
sudo find [directory] -type [d/f] -exec chmod [privilege] {} \;
- Sostituisci
[directory]
con il percorso della directory che contiene i file e le sottodirectory che desideri configurare. - Specificare se sta cercando una directory
-type d
o un file-type f
. - Imposta il file
[privilege]
con ilchmod
comando utilizzando la modalità numerica o simbolica.
Evitare di assegnare privilegi di esecuzione ai file. Una configurazione comune includerebbe l'esecuzione dei seguenti comandi:
sudo find Example -type d -exec chmod 755 {} \;
sudo find Example -type f -exec chmod 644 {} \;
In questo esempio, le directory hanno 755 (u=rwx,go=rx ) privilegi, mentre i file hanno 644 (u=rw,go=r) privilegi.

Puoi verificare che le directory e i file abbiano impostazioni di autorizzazione diverse spostandoti nell'Esempio directory (cd Example
) ed elencare il contenuto (ls -l
). L'output dovrebbe essere simile a quello seguente:

Modifica l'autorizzazione di file specifici in modo ricorsivo
Combinando il find
comando con chmod
può essere utilizzato anche per modificare i permessi di file di un tipo specifico.
La sintassi del comando per modificare l'autorizzazione di un tipo di file specifico in una directory è:
find [directory] -name "*.[filename_extension]" -exec chmod [privilege] {} \;
Ad esempio, per creare tutti i .sh file nella directory corrente eseguibile , useresti:
find . -name "*.sh" -exec chmod +x {} \;