GNU/Linux >> Linux Esercitazione >  >> Linux

Esempi di comandi "chmod" di base in Linux

Il comando Linux per modificare i permessi su un file o una directory è chmod, che ci piace leggere come modalità di modifica del file. chmod ha due modalità di funzionamento:

  1. Modalità simbolica
  2. Modalità numerica/ottale

Per modificare i permessi usando il comando Linux chmod dobbiamo seguire alcune sintassi e regole. Come discusso in precedenza, possiamo modificare l'autorizzazione utilizzando il modo numerico e alfabetico, qui ho spiegato entrambi i metodi con tutti i trucchi.

Via alfabetica

Per utilizzare questo metodo è necessario ricordare di seguito le regole e gli alfabeti per un uso corretto. Per modificare il permesso dell'utente devi usare l'alfabeto “u “. Come quello per il gruppo "g ” e per altri è “o “.

Come Utente, Gruppo e Altri dobbiamo ricordare alcuni alfabeti per dare il permesso di Lettura, Scrittura ed Esegui Come per il permesso di Lettura devi usare l'alfabeto “r “, per Scrivi “w " e per Esegui è "x “.

Quindi la formula per assegnare i permessi usando il comando chmod è mostrata di seguito:

  • u – Utente
  • g – Gruppo
  • o – Altri
  • r – Leggi
  • w – Scrivi
  • x – Esegui

Ad esempio, se si desidera concedere l'autorizzazione di lettura e scrittura all'utente/proprietario e l'autorizzazione di lettura a gruppo e altri utilizzando la modalità alfabetica, il comando sarebbe:

# chmod u+rw,g+r,o+r file_name

Via numerica

Per utilizzare questo metodo devi ricordare di seguito Regole e Numeri per un uso corretto.

  • 4 – Per concedere l'autorizzazione di lettura
  • 2 – Per concedere l'autorizzazione alla scrittura
  • 1 – Per concedere l'autorizzazione all'esecuzione

Ad esempio, se desideri concedere l'autorizzazione di lettura e scrittura all'utente/proprietario e l'autorizzazione di lettura a gruppo e altri utilizzando il modo numerico, il calcolo del comando sarebbe:

4+2 =6 :Verrà aggiunta l'autorizzazione di Lettura e Scrittura a Utente/Proprietario.
4 :Verrà aggiunta l'autorizzazione di Lettura al Gruppo.
4 :Verrà aggiunta l'autorizzazione di Lettura ad Altro.

Quindi il comando sarebbe come:

# chmod 644 filename

Puoi controllare l'autorizzazione di qualsiasi file usando il comando seguente:

# ls -l file.txt 
-rw-rw-r-- 1 geeklab geeklab 0 Feb 20 06:16 file.txt

E usa il comando seguente per verificare l'autorizzazione di una directory:

# ls -ld data/
drwxrwxr-x 2 geeklab geeklab 4096 Feb 20 06:18 data/

Ora qui la domanda è:come identificare quali autorizzazioni sono state assegnate a un file o una directory. È abbastanza semplice. Sopra ho fornito due esempi. Ora identifichiamo il permesso di file.txt. Se noti che le proprietà del file iniziano con “-rw-rw-r–“. Qui possiamo identificare quale autorizzazione è stata assegnata a file.txt.

La sezione dei permessi è divisa in 10 bit di cui

” :Il primo bit è responsabile di identificare se si tratta di un file, una directory o un collegamento simbolico. Fare riferimento ai simboli seguenti:

Simboli importanti:

  • :Autorizzazione assegnata a un file
  • d :Autorizzazione assegnata a una Directory
  • l :Permesso assegnato a un collegamento simbolico
  • Il 2°, 3°, 4° bit sono per il permesso del Proprietario.
  • I bit 5th, 6th, 7th sono per il permesso del gruppo.
  • L'8°, il 9°, il 10° bit sono per il permesso di altri.

Per dare il permesso a qualsiasi file/directory devi usare “+ Simbolo. Per rimuovere il permesso da qualsiasi file/directory devi usare “ Simbolo.

Esempi di utilizzo del comando chmod

Assegna l'autorizzazione a un file

Qui ho un file chiamato file.txt. Diamo il permesso di lettura e scrittura all'utente/proprietario usando il comando chmod.

$ chmod u+rw file.txt
$ ls -l file.txt 
-rw------- 1 geeklab geeklab 0 Feb 20 06:16 file.txt

Per modo numerico usa il comando seguente:

$ chmod 600 file.txt

Assegna l'autorizzazione a una directory

Il comando seguente può essere utilizzato per concedere l'autorizzazione a una directory. Qui ho una directory denominata data. Quindi diamo l'autorizzazione completa (lettura, scrittura, esecuzione) all'utente/proprietario. Fare riferimento al comando seguente.

$ chmod u+rwx data/
$ ls -ld data/
drwx------ 2 geeklab geeklab 4096 Feb 20 06:18 data/

Via numerica:

$ chmod 700 data/

Rimuovi il permesso da un file/directory

Rimuovere l'autorizzazione da un file/directory utilizzando il comando chmod di Linux. Qui sto rimuovendo l'autorizzazione di lettura e scrittura dall'utente/proprietario.

$ chmod u-rw file.txt 
$ ls -l file.txt 
----rw-r-- 1 geeklab geeklab 0 Feb 20 07:18 file.txt

Concedi il permesso a tutti

Puoi usare il comando seguente per dare il permesso a tutti. Qui sto assegnando l'autorizzazione completa a tutti per accedere a file.txt. Ci sono due metodi per fare lo stesso.

Metodo 1

$ chmod a+rwx file.txt 
$ ls -l file.txt 
-rwxrwxrwx 1 geeklab geeklab 0 Feb 20 06:44 file.txt

Metodo 2
Puoi anche usare il comando Linux chmod qui sotto per fare lo stesso.

$ chmod ugo+rwx file.txt 
$ ls -l file.txt 
-rwxrwxrwx 1 geeklab geeklab 0 Feb 20 06:44 file.txt

Via numerica :

$ chmod 777 file.txt 

Assegna autorizzazioni diverse a utenti, gruppi e altri utilizzando il comando chmod di Linux singolo

Qui sto rimuovendo l'autorizzazione di esecuzione dall'utente/proprietario e aggiungendo l'autorizzazione di esecuzione a gruppo e altri utilizzando un singolo comando.

$ chmod u-x,g+x,o+x file.txt
$ ls -l file.txt 
-rw-rwxrwx 1 geeklab geeklab 0 Feb 20 09:40 file.txt

Assegna il permesso a un file facendo riferimento a qualsiasi altro file

È possibile copiare l'autorizzazione da un file all'altro. Qui ho un file chiamato a1.txt il cui permesso è qualcosa del tipo “-rw-r–r– “.

$ ls -l a1.txt 
-rw-r--r-- 1 geeklab geeklab 0 Feb 20 07:21 a1.txt

Ora voglio assegnare la stessa autorizzazione al mio altro file chiamato a2.txt. Puoi farlo usando il comando chmod di Linux con l'argomento –reference. Fare riferimento al comando seguente.

$ chmod --reference=a1.txt a2.txt 
$ ls -l a2.txt 
-rw-r--r-- 1 geeklab geeklab 0 Feb 20 07:22 a2.txt

Assegna l'autorizzazione in modo ricorsivo

Ho una directory denominata data, in cui ho così tanti file e voglio dare il permesso a tutti loro in una volta invece che manualmente uno per uno. Per fare ciò puoi usare il comando Linux chmod con l'argomento -R. Questo ti aiuterà a dare il permesso in modo ricorsivo.

$ chmod -R ugo+rwx data/

Via numerica :

$ chmod -R 777 data/

Assegna l'autorizzazione con output dettagliato

È possibile ottenere l'output dopo aver assegnato l'autorizzazione a qualsiasi file/directory utilizzando il comando chmod di Linux con l'argomento -v. Fare riferimento al comando seguente.

$ chmod -v 777 file.txt 
mode of 'file.txt' changed from 0664 (rw-rw-r--) to 0777 (rwxrwxrwx)

Assegna il permesso con l'output (questo comando darà l'output solo se ci sono modifiche)

Il comando chmod con argomento -c fa anche la stessa cosa dell'output dettagliato (cioè -v). Ma mostrerà l'output solo se ci sono modifiche ai permessi. Se stai assegnando la stessa autorizzazione, non verrà mostrato alcun output.

$ chmod -c 755 file.txt 
mode of 'file.txt' changed from 0777 (rwxrwxrwx) to 0755 (rwxr-xr-x)

Assegnazione dell'autorizzazione ignorando/risolvendo gli errori

Per evitare errori o correggere eventuali errori durante l'assegnazione dei permessi è possibile utilizzare il comando Linux chmod con argomento -f. Fare riferimento al comando seguente.

$ chmod -f 755 file.txt 

Per il comando chmod Aiuto

Per il comando chmod più opzioni e argomenti puoi usare il comando seguente.

$ chmod --help
Usage: chmod [OPTION]... MODE[,MODE]... FILE...
  or:  chmod [OPTION]... OCTAL-MODE FILE...
  or:  chmod [OPTION]... --reference=RFILE FILE...
Change the mode of each FILE to MODE.
With --reference, change the mode of each FILE to that of RFILE.

  -c, --changes          like verbose but report only when a change is made
  -f, --silent, --quiet  suppress most error messages
  -v, --verbose          output a diagnostic for every file processed
      --no-preserve-root  do not treat '/' specially (the default)
      --preserve-root    fail to operate recursively on '/'
      --reference=RFILE  use RFILE's mode instead of MODE values
  -R, --recursive        change files and directories recursively
      --help     display this help and exit
      --version  output version information and exit

Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.

GNU coreutils online help: [http://www.gnu.org/software/coreutils/]
Full documentation at: [http://www.gnu.org/software/coreutils/chmod]
or available locally via: info '(coreutils) chmod invocation'

Verifica la versione del comando chmod

Puoi usare il comando chmod di Linux con l'argomento –version per controllare la versione del comando chmod installato.

$ chmod --version
chmod (GNU coreutils) 8.25
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later [http://gnu.org/licenses/gpl.html].
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie and Jim Meyering.


Linux
  1. Comando mv in Linux:7 esempi essenziali

  2. Esempi di comandi tail di Linux

  3. ln Esempi di comandi in Linux

  4. Esempi di comandi gzip in Linux

  5. file Esempi di comandi in Linux

Esempi di comandi chmod di Linux

Esempi di comandi di Linux cat

Esempi di comandi gzip di Linux

Esempi di comandi dumpe2fs in Linux

Esempi di comandi fsck in Linux

Esempi di comandi mkfs in Linux