GNU/Linux >> Linux Esercitazione >  >> Linux

Gestisci le autorizzazioni di directory e file con chmod Recursive

Sei stanco di dover modificare manualmente i permessi di file e directory? Stai cercando un modo più rapido ed efficiente per modificare i permessi di file e directory? Se è così, allora sei nel posto giusto perché, in questo articolo, imparerai come modificare i permessi di file e directory usando il comando chmod ricorsivamente!

Non sei un lettore? Guarda questo video tutorial correlato! Non vedi il video? Assicurati che il blocco degli annunci sia disattivato.

Continua a leggere per saperne di più!

Prerequisiti

Per continuare, hai bisogno di un dispositivo Linux e di una directory i cui permessi di file e sottodirectory siano disponibili per esercitarti.

Informazioni su utenti e gruppi Linux

I proprietari e i gruppi sono importanti in Linux, necessari per gestire in modo sicuro file e directory. Il proprietario è a cui viene assegnato un file o una directory, che è il creatore, per impostazione predefinita. In Linux, anche i file e le directory appartengono a gruppi. Sia gli utenti che i gruppi vengono impostati tramite il chown comando.

Nello screenshot qui sotto, il contenuto evidenziato in verde mostra l'utente che possiede il file o la directory, mihail in questo esempio. Il contenuto evidenziato in blu mostra a quale gruppo appartiene il file o la directory, di proprietà del staff gruppo in questo esempio.

Comprendere le autorizzazioni di file e directory Linux

Le autorizzazioni impostano le azioni che un utente o un gruppo può eseguire su un determinato file o directory. Sono indicati da una rappresentazione di caratteri ea cui è assegnato anche un valore numerico.

  • Leggi (r o 4 ): Indica se un utente o un gruppo può leggere il contenuto del file o della directory. L'autorizzazione di lettura è concessa per impostazione predefinita a tutti i file e le directory appena creati per tutte le parti.
  • Scrivi (w o 2 ): Indica se un utente o un gruppo può modificare il contenuto di un oggetto. Questa autorizzazione è concessa per impostazione predefinita solo al proprietario di un file o di una directory.
  • Esegui (x o 1 ): Indica se un utente o un gruppo può eseguire un file o eseguire comandi all'interno di una directory. L'autorizzazione di esecuzione è concessa per impostazione predefinita solo alle directory ma non ai file.

Se non dai all'utente (u ) eseguono i permessi su una directory, non saranno in grado di elencare i contenuti poiché l'utente non sarà in grado di eseguire comandi all'interno della directory!

Di seguito è mostrato un esempio, l'output del comando ls -l mostra i diversi tipi di autorizzazione. Quelle autorizzazioni precedute da d valore, indicare una directory.

Perché allora ci sono apparentemente tre serie di autorizzazioni per ogni oggetto? Il controllo granulare delle autorizzazioni si ottiene dividendo le autorizzazioni nelle sezioni (indicate come parti ai fini di questo tutorial) elencate di seguito.

  • Utente (u ): Il proprietario di un file o di una directory, evidenziato in blu.
  • Gruppo (g ): Membri del gruppo a cui appartiene un file o una directory, evidenziati in verde.
  • Altro (o ): Tutti gli utenti e i gruppi aggiuntivi non assegnati in modo esplicito, evidenziati in rosso.

Cambiare i permessi dei file tramite il comando ricorsivo chmod

Con la corretta comprensione dei permessi di Linux, continua a leggere per scoprire come modificare i permessi dei file. Le autorizzazioni vengono modificate tramite il chmod comando ricorsivo come mostrato negli esempi seguenti.

1. Innanzitutto, controlla le autorizzazioni correnti con il ls -l comando. Qui, la my_dir/index.js viene visualizzato il file.

2. Esegui chmod comando, specificando la parte, a (tutti) e le autorizzazioni, rwx oppure leggi/scrivi/esegui. Il comando completo segue:chmod a=rwx index.js .

3. Come puoi vedere, eseguendo chmod ricorsivo non restituisce alcun output. Per verificare che i permessi siano cambiati, esegui il comando ls -l ancora.

Impostazione delle autorizzazioni dei file tramite valori numerici

Ricordi i numeri associati alle autorizzazioni come lettura o scrittura? Invece di specificare i valori dei caratteri, puoi specificare autorizzazioni specifiche tramite un numero. Aggiungendo i valori, crei un'autorizzazione specifica come 6 che è una combinazione di scrittura (2 ) e leggi (4 ) autorizzazioni.

Nell'esempio seguente, imposta le autorizzazioni per main.py file tramite il comando chmod 664 main.py . I valori numerici sono suddivisi come segue.

  • Utente: Leggi e scrivi (6 ).
  • Gruppo: Leggi e scrivi (6 ).
  • Altro: Leggi (4 ).

Una volta modificate le autorizzazioni, verifica le nuove autorizzazioni per main.py file con il comando ls -l .

Rimozione e aggiunta di autorizzazioni file

I comandi non numerici che hai eseguito finora utilizzavano il parametro di assegnazione (= ) con chmod ricorsivo, per impostare autorizzazioni esplicite. Invece, puoi rimuovere (- ) o aggiungi (+ ) autorizzazioni per set di autorizzazioni esistenti.

1. Innanzitutto, elenca le autorizzazioni esistenti per README.md file tramite il comando ls -l README.md .

2. Quindi, aggiungi (+ ) esegui (x ) autorizzazioni alla parte utente (u ), durante la rimozione (- ) leggi (r ) autorizzazioni dell'altra parte (o ) per README.md , con il seguente comando chmod u+x,o-r README.md . Le diverse autorizzazioni delle parti sono separate da virgole (, ).

3. Esegui ls -l README.md comando per verificare che le autorizzazioni siano state modificate.

Modifica ricorsiva delle autorizzazioni di file e directory

Anche se stai facendo progressi, stai operando solo su un file alla volta. Cosa succede se si dispone di un numero elevato di file per cui modificare le autorizzazioni? È ora di intensificare il tuo gioco e imparare a modificare le autorizzazioni per più file.

Una delle opzioni per modificare più file è eseguire chmod ricorsivo con il -R (ricorsiva, e non la capitale) opzione. L'opzione ricorsiva cambierà i permessi per tutti i file, inclusi quelli nelle sottodirectory, all'interno di un determinato percorso.

1. Considera il seguente comando, chmod -R a=r,u=rwx my_dir . La maggior parte delle opzioni che hai già visto prima.

Questo comando cambierà i permessi per tutti i file nella directory, my_dir e sottodirectory, tramite l'opzione ricorsiva (-R ). I file sono impostati come leggibili (r ) per tutti (a ), con autorizzazioni diverse per l'utente corrente (u ) impostato su autorizzazioni complete (lettura, scrittura, esecuzione).

Nello screenshot qui sotto, vedi le autorizzazioni risultanti dopo aver eseguito il comando, che non ha output risultante.

2. Supponi di eseguire il comando chmod -R a=rwx my_dir , nella stessa directory di prima, my_dir. Ancora una volta, stai modificando tutti i file in my_dir, e le sue sottodirectory, per impostare date all (a ) autorizzazioni complete (lettura, scrittura, esecuzione). Ecco il risultato del comando, come chmod ricorsivo non visualizza l'output.

3. Che ne dici del metodo numerico? Come mostrato di seguito, il metodo ricorsivo funziona anche con autorizzazioni numeriche, chmod -R 770 my_dir . Qui stai dando autorizzazioni complete all'utente e al gruppo, ma nessuna autorizzazione all'altra parte.

4. Esegui ls -l per controllare quella mia_dir i permessi di file e sottodirectory vengono impostati con il metodo numerico.

Definizione del comportamento di file e cartelle tramite autorizzazioni speciali

Permessi speciali consentono diversi privilegi aggiuntivi unici rispetto ai set di autorizzazioni standard. Ci sono tre autorizzazioni speciali. Ecco come funzionano queste autorizzazioni speciali e come puoi aggiungerle a un file o una directory.

Impostazione dei permessi SUID (Utente + S)

Comunemente indicato come SUID , è un permesso speciale per l'utente. Il SUID ha un'unica funzione:un file con SUID viene sempre eseguito come l'utente proprietario del file, indipendentemente da chi sta eseguendo il file.

Ad esempio, considera index.js . Per fornire il SUID aggiuntivo permesso, esegui chmod u+s index.js .

Ora, se esegui ls -l index.js , scoprirai che l'utente ha una s nei loro permessi invece di una x.

Impostazione delle autorizzazioni SGID (Gruppo + S)

Comunemente indicato come SGID , questa autorizzazione speciale ha due funzioni:

  • Se impostato per un file, consente di eseguire il file come gruppo che possiede il file, indipendentemente da chi sta eseguendo il file.
  • Se impostato per una directory, tutti i file creati nella directory avranno il loro gruppo proprietà impostata su quella del proprietario della directory.

Esercitati su index.php file. Per aggiungere il SGID permesso a questo file, esegui il seguente comando:chmod g+s index.php .

Ora, se esegui ls -l index.php , scoprirai che il gruppo ha una s nei loro permessi.

Passa a una directory:mia_dir . Puoi aggiungere il SGID autorizzazione a questa directory utilizzando il seguente comando:chmod g+s my_dir . Tutti i file creati in questa directory avranno ora il loro gruppo proprietà impostata sul proprietario della directory. Puoi controllare le nuove autorizzazioni della directory usando ls -ld my_dir (il d il parametro limita l'output solo alle directory).

Modifica dell'autorizzazione del bit permanente

L'ultimo permesso speciale è anche noto come "bit appiccicoso". Questa autorizzazione non ha effetto sui singoli file. Ma, a livello di directory, limita l'eliminazione dei file. Solo il proprietario di un file può rimuovere un file all'interno di quella directory.

Aggiungi il bit appiccicoso al vecchio familiare my_dir directory. Per farlo, esegui il comando come segue:chmod +t my_dir .

Nota che, per aggiungere il bit appiccicoso, non indichi l'altro gruppo(o) prima del +t .

Quando controlli mia_dir Con le nuove autorizzazioni, vedrai una T maiuscola nell'altro autorizzazioni, come mostrato nello screenshot qui sotto.

Conclusione

Congratulazioni! Hai trattato molti argomenti su chmod ricorsivo. Ora sei pronto per affrontare eventuali fastidiosi problemi di autorizzazione che sorgono con l'onnipotente chmod attrezzo. Hai persino imparato a sfruttare il potere del ricorsivo (-R ) opzione.

Come intendi implementare chmod funzionalità versatili a tuo vantaggio la prossima volta che dovrai gestire i permessi di file o directory?


Linux
  1. Permessi Linux:un'introduzione a chmod

  2. Linux chmod and chown - Come modificare le autorizzazioni e la proprietà dei file in Linux

  3. Permessi e salvataggio dei file?

  4. Domande per l'intervista su Linux:autorizzazioni di base per file e directory

  5. Tabella delle autorizzazioni per tipi di utenti di file/directory e file system

Come modificare le autorizzazioni dei file in modo ricorsivo con chmod in Linux

Comando Chmod in Linux (autorizzazioni file)

Permessi e proprietà dei file Linux spiegati con esempi

Esempi di comandi chmod di Linux

Comprensione delle autorizzazioni UNIX e dei tipi di file

Monta con sshfs e scrivi i permessi dei file