GNU/Linux >> Linux Esercitazione >  >> Cent OS

Centos:modificare tutte le autorizzazioni delle cartelle con 1 comando?

Nella directory della mia applicazione Web, come posso modificare tutte le autorizzazioni della mia cartella in rwxr-xr-x (755)? E come posso modificare tutti i permessi dei file in rw-r--r-- (644)? Desidero modificare tutte le cartelle e i file, inclusi i file e le cartelle secondari.

So che il comando seguente cambierà tutti i file e le cartelle, ma voglio discriminare tra un file e una cartella.

chmod -R 755 ./my_web_app_project

Risposta accettata:

Un modo per fare esattamente quello che vuoi con un find il comando è

find my_web_app_project '(' -type f -exec chmod 644 {} ';' ')' -o '(' -type d -exec chmod 755 {} ';' ')'

-o significa OR.
Questo comando elabora tutti gli oggetti nell'albero del progetto
che sono di tipo "file" o digita "directory",
ed esegue diversi comandi in base al tipo di ciascun oggetto.

Puoi renderlo leggermente più efficiente
sostituendo i punti e virgola (';' ) con il segno più (+ );
questo dice a find per eseguire chmod 644 una volta, con tutti i nomi dei file semplici come argomenti,
e per eseguire chmod 755 una volta, con tutti i nomi delle directory come argomenti.

A proposito, non è necessario dire ./ per qualsiasi cosa diversa dall'esecuzione di un programma nella directory corrente
(anche se occasionalmente torna utile
per manipolare file i cui nomi iniziano con alcuni caratteri speciali).

Mi chiedo che aspetto abbiano i tuoi permessi ora
(prima di eseguire un chmod ricorsivo a livello di albero ).
I file generalmente non ottengono i bit di autorizzazione di esecuzione attivati
a meno che non siano effettivamente programmi eseguibili,
o tu abbia accidentalmente fatto qualcosa come chmod -R 755 .
Le directory generalmente non ottengono i bit di autorizzazione di esecuzione disattivati
a meno che tu non abbia fatto qualcosa di catastrofico come chmod -R 644 .
Se hai incasinato gravemente i permessi
perché hai fatto un sconsiderato chmod -R con una modalità numerica,
ignora questa sezione
e mantieni il comando all'inizio di questa risposta.

Ma, se le tue autorizzazioni sono generalmente sane,
e vuoi semplicemente imporre uno standard di
autorizzazioni di lettura/scrittura per l'utente,
e autorizzazioni di sola lettura per tutti gli altri (gruppo e mondo ),
puoi farlo

chmod -R +rX,u+w,go-w my_web_app_project

in cui

  • +rX significa +r,+X (nota che la X è in maiuscolo — questo è importante).
    • +r significa impostare il permesso di lettura per utente, gruppo e altro.
    • +X significa impostare il permesso di esecuzione per utenti, gruppi e altri se è attualmente impostato per qualcuno di essi o se l'oggetto è una directory .
  • u+w significa impostare il permesso di scrittura per l'utente.
  • go-w significa disattivare il permesso di scrittura per il gruppo e altri.
Correlati:posso eliminare la cartella C:ProgramDataPackage Cache?

Riepilogo di alcuni punti chiave:

  • Certo che puoi chmod solo cose che possiedi
    (a meno che tu non sia privilegiato) e che non sono di sola lettura.
    Se ci sono cose nella tua directory che non puoi chmod ,
    uno di questi comandi causerà un errore.
  • Il find i comandi non avranno alcun effetto su cose
    che non siano directory o file (ad esempio, named pipe).
  • Il find comando con -exec chmod 755 {} + potrebbe non riuscire
    se non disponi già dell'autorizzazione di lettura ed esecuzione per tutte le cartelle
    nella directory di primo livello.
  • Il chmod -R +rX,u+w,go-w comando will
    • imposta tutte le directory in modalità 755,
    • ignora i link simbolici,
    • per tutti gli altri tipi di file (inclusi, ad esempio, named pipe):
      • impostalo a 755 se ha già almeno un x po; altrimenti,
      • impostalo su 644.

Cent OS
  1. CentOS 8 Gestione dei pacchetti con DNF sulla riga di comando

  2. Comando Linux DD - 15 esempi con tutte le opzioni

  3. Come controllare i permessi con il comando trova

  4. Centos:rinominare tutti i file con un certo nome?

  5. Linux:modificare le autorizzazioni delle cartelle?

Comando Chmod in Linux (autorizzazioni file)

Comando Chmod in Linux

Comando Chmod:come modificare le autorizzazioni dei file in Linux

Come modificare il nome host su CentOS 8

Impara l'uso del comando chmod (Cambia modalità) in Linux

Esempi di comandi chmod di Linux