GNU/Linux >> Linux Esercitazione >  >> Linux

9 Esempi di comandi rapidi chmod in Linux

Il comando Chmod in Linux viene utilizzato per modificare o assegnare autorizzazioni su file e directory. Nei sistemi Linux/Unix, l'accessibilità a file e directory è determinata dalla proprietà e dalle autorizzazioni dei file. In un articolo precedente, abbiamo visto come gestire la proprietà di file e directory utilizzando il comando chown. In questo tutorial, esaminiamo il comando chmod.

Il comando chmod, abbreviazione di modalità di modifica, viene utilizzato per gestire i permessi di file e directory e determina chi può accedervi. Entriamo ora ed esploriamo la natura dei permessi di file e directory e come possono essere modificati.

Autorizzazioni Linux

Per capire meglio come funziona il comando chmod, è prudente studiare il modello dei permessi dei file di Linux.

In Linux, abbiamo 3 tipi di autorizzazioni per i file:leggere (r), scrivere (w) ed eseguire (x). Queste autorizzazioni determinano quali utenti possono leggere, scrivere o eseguire i file. Puoi assegnare queste autorizzazioni utilizzando la notazione testuale o ottale (numerica), come vedremo in seguito in questo tutorial.

I file e le directory possono appartenere al proprietario del file (u), al gruppo (g) o ad altri (o)

  • u   –  Proprietario del file
  • g   –  Gruppo
  • o   – Altri

I permessi dei file sono elencati usando il comando ls -l. Il flag -l elenca i permessi del file. I permessi sono organizzati in tre set:rispettivamente l'utente, il gruppo e altri

Per avere una migliore comprensione dei permessi dei file, elencheremo il contenuto della nostra directory come mostrato:

$ ls -l

Partendo dall'estrema sinistra, il primo carattere/simbolo indica il tipo di file. Un trattino (-) indica che il file è un file normale. Il simbolo d indica che si tratta di una directory. Il simbolo l indica che si tratta di un collegamento simbolico.

I restanti nove caratteri sono segmentati in 3 triplette, ciascuna con tre simboli r(leggi), w(scrivi) e x(esegui). Come sottolineato in precedenza, il primo segmento punta alle autorizzazioni del proprietario, il secondo indica le autorizzazioni del gruppo e l'ultima parte specifica le autorizzazioni che altri utenti hanno sul file o sulla directory.

Dall'output, possiamo vedere che abbiamo 2 file (hello.txt e report.zip) e una singola directory.

Esaminiamo il primo file

-rw-rw-r-- 1 linuxtechi linuxtechi   35 Aug 17 15:42 hello.txt

Per il primo file, i permessi -rw-rw-r– implicano che il proprietario del file ha i permessi di lettura e scrittura, il gruppo possiede anche i permessi di lettura e scrittura, mentre gli altri utenti hanno solo i permessi di lettura. Le stesse autorizzazioni si applicano anche al file compresso report.zip.

Diamo un'occhiata ai permessi della directory:

drwxrwxr-x 2 linuxtechi linuxtechi 4096 Aug 17 15:43 sales

Possiamo vedere che il proprietario della directory e del gruppo ha tutti i permessi (lettura, scrittura ed esecuzione) mentre gli altri utenti hanno solo i permessi di lettura ed esecuzione.

I simboli del triplo trattino indicano che non sono state concesse autorizzazioni né per il proprietario del file, né per il gruppo né per altri utenti.

Utilizzo del comando chmod per impostare i permessi di file e directory

Dopo aver esaminato le autorizzazioni dei file e come visualizzarle, non concentriamoci su come modificare queste autorizzazioni.

Il comando chmod in Linux viene utilizzato per modificare i permessi di file e directory utilizzando la notazione testuale (simbolica) o numerica (ottale). Richiede la seguente sintassi:

$ chmod [OPZIONI] MODALITÀ nome file

Solo l'utente root o un utente normale con privilegi sudo può modificare i permessi di file o directory. Puoi passare più di un file o directory separati da spazi nella sintassi del comando.

Ora analizziamo e vediamo diversi esempi di comando chmod.

Esempio 1) Assegnare autorizzazioni utilizzando la notazione numerica

Quando si impostano le autorizzazioni utilizzando lo stile/la notazione numerica, utilizzare la sintassi mostrata di seguito:

$ sudo chmod [OPZIONI] valore_numerico nomefile

Il valore numerico può assumere 3 o 4 numeri. Tuttavia, nella maggior parte dei casi, vengono utilizzati 3 numeri. Le autorizzazioni di lettura, scrittura ed esecuzione assumono i seguenti valori:

  • permesso di lettura => 4
  • permesso di scrittura => 2
  • autorizzazione di esecuzione => 1

La somma totale dei valori delle autorizzazioni, ovvero lettura, scrittura ed esecuzione in ciascuno dei tre segmenti, rappresenta le autorizzazioni complete di un determinato file o directory.

Cosa intendiamo con questo?

Supponiamo che il proprietario abbia i permessi di lettura, scrittura ed esecuzione, il gruppo abbia i permessi di lettura ed esecuzione e gli altri utenti abbiano solo i permessi di lettura, questo può essere suddiviso come segue:

  • u :   rwx  =7
  • g :   r-x  =5
  • o :   r–  =4

Pertanto, arriviamo al valore di 754 come valore numerico per i permessi dei file del file specificato.

Per assegnare autorizzazioni di lettura, scrittura ed esecuzione al proprietario e autorizzazioni di lettura solo al gruppo e ad altri utenti, esegui il comando:

$ chmod 744 devops.txt

Per assegnare tutte le autorizzazioni al proprietario del file, leggere ed eseguire autorizzazioni per il gruppo e nessuna autorizzazione per altri utenti, eseguire:

$ chmod 750 coders.txt

Per assegnare tutte le autorizzazioni al proprietario del file, leggere e scrivere le autorizzazioni al gruppo e agli altri utenti, eseguire il comando:

$ chmod 755 sysadmin.txt

Esempio 2) Assegnazione ricorsiva di autorizzazioni alle directory

Quando si assegnano autorizzazioni alle directory, utilizzare il flag -R per assegnare in modo ricorsivo le autorizzazioni ai relativi file e sottocartelle. Ad esempio:

$ chmod 755 -R nome_directory

$ chmod 755 -R /home/linuxtechi/data

Esempio 3) Assegna autorizzazioni utilizzando la notazione di testo

Un altro modo per assegnare le autorizzazioni consiste nell'usare la notazione di testo. In questo metodo, il comando chmod accetta flag o simboli che rappresentano il proprietario, il gruppo, gli altri o tutti gli utenti ( u, g e o) nella sintassi.

Il metodo non è così semplice come il metodo precedente ed è necessario prestare attenzione per evitare di assegnare autorizzazioni errate.

Ecco come appare la sintassi

$ chmod [OPZIONI] [ u g o a ]  [ – + =] [ r, w, x ] file

Analizziamolo.

Il primo gruppo di parametri [ u g o a]  specifica la categoria di utenti le cui autorizzazioni verranno modificate

  • u:utente
  • g :gruppo
  • o :altro
  • a:tutto (Questo include tutto quanto sopra)

Se questo set viene omesso, l'opzione predefinita è l'opzione a.

Il secondo set di opzioni – opzioni operatore [ – + =] – determina se le autorizzazioni verranno aggiunte o rimosse dalla categoria di utenti. L'opzione rimuovi

  • –    :il flag rimuove i permessi del file da un utente specificato.
  • +   :aggiunge/aggiunge autorizzazioni a un utente specificato.
  • =   :assegna agli utenti specificati autorizzazioni distinte e rimuove le autorizzazioni precedenti del segmento utente.

Diamo un'occhiata ad alcuni esempi:

Esempio 4) Assegnare i permessi di lettura a un file

$ chmod o=r nomefile

Il comando precedente assegna ad altri utenti indicati dal simbolo 'o' i permessi di lettura solo al file e rimuove i permessi precedenti assegnati al segmento 'altri'. Prendi un file1.txt che abbia le seguenti autorizzazioni

Per assegnare i permessi di lettura del segmento "altri ( o )" esegui solo

$ sudo chmod o=r file1.txt

Dall'output, possiamo vedere che al segmento "altri" sono stati assegnati i permessi di lettura mentre allo stesso tempo ha perso i permessi di esecuzione. Ciò implica che l'operatore =assegna nuove autorizzazioni e allo stesso tempo cancella le autorizzazioni precedenti.

Esempio 5) Assegnare autorizzazioni di esecuzione al proprietario di file e gruppi

$ sudo chmod ug+x nomefile

Il comando precedente aggiunge le autorizzazioni di esecuzione al proprietario e al gruppo del file. Usando il nostro file, questo diventa:

$ sudo chmod ug+x file1.txt

Esempio 6) Assegna autorizzazioni diverse a file, gruppi e altri

$ sudo chmod u=rwx,g=rw,o=r nomefile

Il comando precedente assegna tutte le autorizzazioni al proprietario del file, le autorizzazioni di lettura e scrittura al gruppo e solo le autorizzazioni di lettura ad altri utenti.

NOTA: Se non ci sono autorizzazioni specificate dopo l'operatore =, tutte le autorizzazioni del segmento utente vengono rimosse.

Esempio 7) Rimuovere tutte le autorizzazioni per altri utenti

$ sudo chmod o=nomefile

Il comando sopra rimuove tutte le autorizzazioni dal segmento utente "altri" per il file specificato.

Il comando ha lo stesso effetto del comando seguente:

$ sudo chmod o-rwx nomefile

Esempio 8) Assegna autorizzazioni utilizzando un file di riferimento

Un altro modo pratico e conveniente per assegnare i permessi ai file è utilizzare un file di riferimento. In questo metodo, si utilizza l'opzione –reference=ref_file per impostare i permessi di un file in modo che siano gli stessi di un altro file di riferimento. Usa la sintassi qui sotto

$ sudo chmod –reference=file_ref nomefile

Ad esempio, per impostare i permessi dei file di file2.txt in modo che siano gli stessi di file1.txt, eseguire il comando:

$ sudo chmod --reference=file1.txt file2.txt

Il file di riferimento è file1.txt mentre file2.txt è il file che occuperà i permessi del file per il file di riferimento.

Esempio 9) Assegna il permesso di esecuzione solo alle directory

Supponiamo di avere una directory che contiene file e sottodirectory e desideriamo assegnare il permesso di esecuzione solo alle directory senza toccare i file. Quindi, questo può essere ottenuto usando il seguente comando chmod,

$ chmod a+X *

Se hai notato attentamente, abbiamo utilizzato la X maiuscola per l'autorizzazione di esecuzione, il comando sopra imposterà l'autorizzazione di esecuzione su tutte le directory della nostra directory di lavoro corrente.

Conclusione

Questo tira il sipario sul nostro argomento. Abbiamo esaminato il comando chmod e visto vari esempi in cui il comando può essere utilizzato per modificare i permessi dei file.


Linux
  1. 8 Esempi di comandi Quick Date in Linux

  2. Permessi Linux:un'introduzione a chmod

  3. Comando mv in Linux:7 esempi essenziali

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

  5. file Esempi di comandi in Linux

Comando Linux WC con esempi

Comando Chmod in Linux

Comando Chmod:come modificare le autorizzazioni dei file in Linux

Esempi di comandi chmod di Linux

Esempi di comandi di Linux cat

Esempi di comandi gzip di Linux