logo

Comando Chmod in Linux/Unix con esempi

Il comando chmod di Linux viene utilizzato per modificare le autorizzazioni di accesso di file e directory. Sta per cambiare modalità . Non è possibile modificare l'autorizzazione dei collegamenti simbolici. Anche, ignora i collegamenti simbolici incontrati nell'attraversamento ricorsivo delle directory.

Nel Linux file system, ogni file è associato a un particolare proprietario e dispone di autorizzazioni di accesso per diversi utenti. Le classi utente possono essere:

  • proprietario
  • membro del gruppo
  • Altri (tutti gli altri)

I permessi dei file in Linux sono i seguenti tre tipi:

  • leggi (r)
  • scrivere (w)
  • eseguire (x)

Breve storia di Chmod

Innanzitutto, il comando chmod è rappresentato in AT&T UNIX versione 1 con la chiamata di sistema chmod. Gli elenchi di controllo degli accessi sono stati inclusi in diversi file system oltre a queste modalità più comuni per migliorare la flessibilità poiché i sistemi crescevano in tipi e numero di utenti.

La versione chmod organizzata nei coreutils GNU è stata specificata da Jim Meyering e David MacKenzie. Questo comando è presente come pacchetto isolato per Microsoft Windows come elemento della raccolta di porte Win32 native di UnxUtils di utilità di base simili a GNU Unix. Inoltre, il comando chmod è stato fornito al sistema operativo IBM i.

Vediamo come modificare i permessi del file utilizzando il comando chmod.

Sintassi:

ridhima tiwari

La sintassi di base del comando chmod è la seguente:

 chmod 

Le opzioni generalmente implementate sono:

    -R:Sta per ricorsivo, ovvero aggiunge oggetti alle sottodirectory.-IN:Sta per verbose, visualizza oggetti modificati (gli oggetti non modificati non vengono visualizzati).

L'oggetto di destinazione viene influenzato se viene menzionato un collegamento simbolico. Le modalità file correlate direttamente ai collegamenti simbolici stessi non vengono utilizzate in genere.

Il componente principale dell'autorizzazione chmod:

Ad esempio, rwxr-x---

Tutti i gruppi di tre caratteri specificano i permessi per tutte le classi:

    rwx:I tre caratteri più a sinistra specificano i permessi per il proprietario del file (cioè la classe Utente).r-x:I tre caratteri centrali specificano i permessi per il gruppo proprietario del file (cioè la classe Gruppo).---:I tre caratteri più a destra specificano le autorizzazioni per la classe Altro. Gli utenti che non sono il proprietario del file e i membri del gruppo non possono accedere al file.

Opzioni:

Il comando chmod supporta le seguenti opzioni della riga di comando:

-c, --cambia: È simile all'opzione verbose, ma la differenza è che viene segnalato se è stata apportata una modifica.

-f, --silent, --quiet: Viene utilizzato per sopprimere i messaggi di errore.

-v, --verbose: Viene utilizzato per visualizzare una diagnostica per ogni file elaborato.

--no-preserve-root: Viene utilizzato per non trattare il simbolo della barra rovesciata ('/'), in particolare (l'impostazione predefinita).

--preserve-root: Se si utilizza questa opzione, non funzionerà in modo ricorsivo sulla barra rovesciata ('/').

--reference=FILER: Viene utilizzato per specificare la modalità dell'RFILE in alternativa ai valori MODE.

-R, --ricorsivo: Viene utilizzato per modificare file e directory in modo ricorsivo.

--aiuto: Viene utilizzato per visualizzare il manuale della guida con una breve descrizione dell'utilizzo e delle opzioni di supporto.

--versione: Viene utilizzato per visualizzare le informazioni sulla versione.

Sintassi dei permessi dei file

Se sei un nuovo utente, potresti rimanere confuso con i diversi tipi di lettere utilizzate per impostare i permessi del file. Quindi, prima di procedere ulteriormente con il comando chmod, comprendiamo la sintassi dei permessi del file.

Per impostare i permessi di un file o di una directory, dobbiamo specificare quanto segue:

come disattivare la modalità sviluppatore
  • Chi: chi siamo. (utente)
  • Cosa: quale modifica apporteremo (ad esempio aggiungendo o rimuovendo l'autorizzazione)?
  • Quale: quale dei permessi?

La dichiarazione di autorizzazione è rappresentata in indicatori come u+x, u-x. Dove 'u' sta per 'utente', '+' sta per aggiungi, '-' sta per rimuovi, 'x' sta per eseguibile (quale).

lattice di dimensioni del testo

Il valore utente può essere:

u: il proprietario del file

g: membro del gruppo

o: altri

R: tutti

I tipi di autorizzazione possono essere r, w e x.

Impostazione e aggiornamento delle autorizzazioni

Per impostare i permessi di un file, esegui un'istruzione di autorizzazione con il comando chmod. Ad esempio, vogliamo impostare i permessi di lettura e scrittura per tutti gli utenti e i gruppi del file 'Demo.txt'. Dobbiamo passare la dichiarazione di autorizzazione 'u=rw,go=rw Demo.txt' con il comando chmod. Per visualizzare i permessi del file, eseguire il comando seguente:

 ls -l Demo.txt 

Il comando precedente visualizzerà l'autorizzazione corrente del file 'Demo.txt'.

Per modificare l'autorizzazione, eseguire il comando seguente:

 chmod u=rw,go=rw Demo.txt 

Considera l'output seguente:

Comando chmod di Linux

Dall'output precedente, l'autorizzazione di accesso di 'Demo.txt' è cambiata.

Impostazione delle autorizzazioni per più file

Possiamo impostare i permessi per più file contemporaneamente utilizzando il comando chmod. Per modificare i permessi di più file, specificare il modello del file con il comando chmod. Ad esempio, se vogliamo impostare i permessi di lettura e scrittura per tutti i file di testo, specifichiamo il file *. modello txt con il comando chmod.

Per visualizzare i permessi di tutti i file di testo dalla directory di lavoro corrente, eseguire il comando seguente:

 ls -l *.txt 

Elencherà tutti i file di testo con la loro modalità di autorizzazione. Considera l'output seguente:

Comando chmod di Linux

Dall'output precedente, molti file hanno solo il permesso di lettura per altri utenti.

Per impostare i permessi di lettura e scrittura per altri utenti, esegui il comando seguente:

 chmod o+w *.txt 

Imposterà l'autorizzazione di lettura e scrittura per altri utenti dei file di testo. Considera l'output seguente:

Comando chmod di Linux

Stenografia numerica

Possiamo usare i valori numerici invece delle lettere per specificare le autorizzazioni. Per specificare l'autorizzazione viene utilizzato un valore di tre cifre. La cifra più a sinistra rappresenta il proprietario (u) e la cifra centrale rappresenta i membri del gruppo (g). La cifra più a destra rappresenta le altre (o).

La tabella seguente rappresenta le cifre e le relative autorizzazioni:

Cifre Autorizzazioni
000 Nessun permesso
001 Esegui il permesso
010 Permesso di scrittura
011 Permessi di scrittura ed esecuzione
100 Permesso di lettura
101 Leggere ed eseguire i permessi
110 Permessi di lettura e scrittura
111 Permessi di lettura, scrittura ed esecuzione

Modi simbolici

Inoltre, il comando chmod accetta la notazione simbolica a grana più fine, che consente di modificare modalità specifiche. La modalità simbolica è composta da tre elementi, che vengono fusi a formare un'unica stringa di testo:

 $ chmod [references] [operator] [modes] file... 

Il programma chmod applica un operatore per definire come dovrebbero essere organizzate le modalità dei file. Sono approvati i seguenti operatori:

Operatore Descrizione
+ Aggiunge il descritto alle classi descritte.
- Rimuove la modalità descritta dalle classi descritte.
= Rappresenta che le modalità descritte devono essere create come le stesse modalità per le classi descritte.

Le modalità rappresentano quali autorizzazioni verranno rimosse o concesse dalle classi descritte. Esistono principalmente tre modalità comuni correlate alle autorizzazioni comuni:

Nome Modalità Descrizione
Leggere R Legge un file o elenca il contenuto di una directory.
scrivere In Scrive in una directory o in un file.
eseguire X Ricorsisce un albero di directory o esegue un file.
esecuzione speciale X Non è un permesso ma può invece essere utilizzato al posto di x. Utilizza i permessi di esecuzione per le directory nonostante i permessi attuali e utilizza i permessi di esecuzione per un file che ha almeno un bit di permessi di esecuzione impostato. È utile se utilizzato con l'operatore '+' e senza impostare il permesso di esecuzione, cosa che accadrebbe se utilizzassimo semplicemente chmod -R a+rx ., mentre possiamo implementare chmod -R a+rx . con x piuttosto.

È possibile descrivere più modifiche isolando più modalità simboliche insieme alle virgole. Il comando chmod ispezionerà il file umask se un utente non è specificato.

np.unique

Modalità speciali

Inoltre, il comando chmod può modificare le modalità speciali e i permessi aggiuntivi di una directory o di un file. Le modalità simboliche applicano 's' per indicare le modalità setgid e setuid e 't' per indicare la modalità sticky. Una modalità viene utilizzata solo per le classi corrette, indipendentemente dal fatto che siano menzionate o meno altre classi.

Quasi tutti i sistemi operativi supportano numericamente la specifica della modalità speciale, in particolare in ottale, ma alcuni no. A questi sistemi possono essere applicate solo le modalità simboliche.

Alcuni esempi della riga di comando:

Comando Descrizione
chmod a+r publicComments.txt Aggiungerà l'autorizzazione di lettura per ogni classe (ad esempio Gruppo, Proprietario e Altri).
chmod a-x publicComments.txt Rimuoverà il permesso di esecuzione per ogni classe.
chmod a+rx viewer.sh Aggiungerà le autorizzazioni di esecuzione e lettura per ogni classe.
chmod u=rw, g=r, o=internalPlan.txt Imposterà i permessi di scrittura e lettura per l'utente, consentirà la lettura per il Gruppo e rifiuterà l'accesso per gli Altri.
chmod -R u+w, go-w docs Includerà l'autorizzazione di scrittura nella directory docs e ciascuno dei suoi contenuti per il proprietario ed eliminerà l'autorizzazione di scrittura per gli altri e il gruppo.
chmod e=rw groupAgreements.txt Imposterà le autorizzazioni di scrittura e lettura per gruppo e utente.
chmod 664 global.txt Imposterà le autorizzazioni di scrittura e lettura per il gruppo e l'utente e concederà l'autorizzazione di lettura agli altri.
chmod 744 Show_myCV.sh Imposterà le autorizzazioni di esecuzione, scrittura e lettura per l'utente e fornirà l'autorizzazione di lettura a Gruppo e Altri.