Se stai utilizzando Linux come sistema operativo principale o gestisci server Linux, ti imbatterai in una situazione quando tenti di creare o modificare un file e riceverai un errore "Autorizzazione negata". In genere, gli errori relativi alle autorizzazioni insufficienti possono essere risolti impostando le autorizzazioni o la proprietà dei file corrette.
Linux è un sistema multiutente e l'accesso ai file è controllato tramite i permessi, gli attributi e la proprietà dei file. Ciò garantisce che solo gli utenti e i processi autorizzati possano accedere a file e directory.
Per ulteriori informazioni sui permessi dei file, vedere "Comando Umask in Linux".
In questo articolo spiegheremo come modificare ricorsivamente i permessi di file e directory.
Chmod ricorsivo #
Il chmod
comando consente di modificare i permessi dei file utilizzando la modalità simbolica o numerica.
Per operare ricorsivamente su tutti i file e le directory in una data directory, usa il chmod
comando con il -R
, (--recursive
) opzione. La sintassi generale per modificare ricorsivamente i permessi del file è la seguente:
chmod -R MODE DIRECTORY
Ad esempio, per modificare i permessi di tutti i file e le sottodirectory in /var/www/html
directory in 755
useresti:
chmod -R 755 /var/www/html
La modalità può essere specificata anche utilizzando il metodo simbolico:
chmod -R u=rwx,go=rx /var/www/html
Solo root, proprietario del file o utente con sudo
privilegi possono modificare i permessi di un file. Fai molta attenzione quando modifichi ricorsivamente i permessi dei file.
Utilizzo di find
Comando #
In generale, i file e le directory non dovrebbero avere le stesse autorizzazioni. La maggior parte dei file non richiede l'autorizzazione di esecuzione, mentre è necessario impostare le autorizzazioni di esecuzione sulle directory per poterle modificare.
Lo scenario più comune consiste nel modificare ricorsivamente le autorizzazioni del file del sito Web in 644
e le autorizzazioni della directory per 755
.
Utilizzando il metodo numerico:
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
Utilizzando il metodo simbolico:
find /var/www/html -type d -exec chmod u=rwx,go=rx {} \;
find /var/www/html -type f -exec chmod u=rw,go=r {} \;
Il find
il comando cerca file o directory in /var/www/html
e passa ogni file o directory trovato a chmod
comando per impostare i permessi.
Quando si utilizza find
con -exec
, il chmod
il comando viene eseguito per ogni voce trovata. Usa xargs
comando per velocizzare l'operazione passando più voci contemporaneamente:
find /var/www/html -type d -print0 | xargs -0 chmod 755
find /var/www/html -type f -print0 | xargs -0 chmod 644
Conclusione #
Il chmod
comando con il -R
opzioni ti consente di modificare ricorsivamente i permessi del file.
Per impostare ricorsivamente i permessi dei file in base al loro tipo, usa chmod
in combinazione con find
comando.
Se hai domande o feedback, sentiti libero di lasciare un commento.