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 755find /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.