GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:imposta l'autorizzazione solo per le directory

chmod può effettivamente farlo da solo; il X autorizzazione simbolica significa "esegui, se ha senso" che generalmente significa sulle directory ma non sui file. Quindi, puoi usare:

chmod -R u=rwX,go=rX /path/to/htdocs

L'unico potenziale problema è che se qualcuno dei file semplici ha già set di esecuzione, chmod presuppone che sia intenzionale e lo mantiene. Se questo è un potenziale problema e hai la versione GNU di chmod (cioè sei su Linux), puoi far sì che rimuova qualsiasi autorizzazione di esecuzione vagante come questa:

chmod -R a-x,u=rwX,go=rX /path/to/htdocs

Sfortunatamente, questo trucco non funziona con la versione bsd (/macOS) di chmod (Non sono sicuro di altre versioni). Questo perché la versione bsd applica il X autorizzazione basata sulla "modalità originale (non modificata)", ovvero se aveva bit di esecuzione prima il a-x la modifica è stata eseguita (vedi il man pagina).


Usa find per cercare directory e applicare chmod su di esse:

find -type d | xargs chmod 775

Usa il tipo f per file:

find -type f | xargs chmod 775

Usa -type di find opzione per limitare le azioni a file e directory. Usa il -o opzione per specificare azioni alternative per tipi diversi, quindi devi solo eseguire find una volta, piuttosto che separatamente per ogni tipo.

find htdocs -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} +

Linux
  1. Introduzione al comando Linux chmod

  2. Come cercare e rimuovere le directory in modo ricorsivo su Linux

  3. Trova file e directory in Linux come un professionista

  4. Trova i file e le directory più grandi in Linux

  5. Esempi di comandi "chmod" di base in Linux

Trova comando in Linux (Trova file e directory)

Ripristina l'autorizzazione eseguibile al comando Chmod in Linux

3 modi per trovare file e directory in Linux

Come trovare ed eliminare directory vuote in Linux

Trova facilmente file e directory su Linux

Come elencare solo le directory in Linux