GNU/Linux >> Linux Esercitazione >  >> Linux

Comprendere i permessi dei file Linux

In Linux, i permessi, gli attributi e la proprietà dei file controllano il livello di accesso che i processi di sistema e gli utenti hanno ai file. Ciò garantisce che solo gli utenti e i processi autorizzati possano accedere a file e directory specifici.

Autorizzazioni file Linux #

Il modello di autorizzazioni di base di Linux funziona associando ogni file di sistema a un proprietario e un gruppo e assegnando i diritti di accesso alle autorizzazioni per tre diverse classi di utenti:

  • Il proprietario del file.
  • I membri del gruppo.
  • Altri (tutti gli altri).

La proprietà del file può essere modificata utilizzando il chown e chgrp comandi.

Tre tipi di autorizzazioni file si applicano a ciascuna classe di utenti:

  • Il permesso di lettura.
  • Il permesso di scrittura.
  • Il permesso di esecuzione.

Questo concetto ti consente di controllare quali utenti possono leggere il file, scriverlo o eseguirlo.

Per visualizzare i permessi dei file, usa ls comando:

ls -l file_name
-rw-r--r-- 12 linuxize users 12.0K Apr  28 10:10 file_name
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

Il primo carattere indica il tipo di file. Può essere un file normale (- ), directory (d ), un collegamento simbolico(l ), o altri tipi speciali di file. I seguenti nove caratteri rappresentano i permessi del file, tre triplette di tre caratteri ciascuna. La prima tripletta mostra le autorizzazioni del proprietario, la seconda le autorizzazioni di gruppo e l'ultima tripletta mostra le autorizzazioni di tutti gli altri.

Nell'esempio sopra (rw-r--r-- ) significa che il proprietario del file ha i permessi di lettura e scrittura (rw- ), il gruppo e altri hanno solo i permessi di lettura (r-- ).

I permessi dei file hanno un significato diverso a seconda del tipo di file.

Ciascuna delle tre triplette di autorizzazioni può essere costituita dai seguenti caratteri e avere effetti diversi, a seconda che sia impostata su un file o su una directory:

Effetto delle autorizzazioni sui file

Autorizzazione Personaggio Significato su file
Leggi - Il file non è leggibile. Non è possibile visualizzare il contenuto del file.
r Il file è leggibile.
Scrivi - Il file non può essere modificato o modificato.
w Il file può essere cambiato o modificato.
Esegui - Il file non può essere eseguito.
x Il file può essere eseguito.
s Se trovato in user tripletta, imposta il setuid po. Se trovato nel group tripletta, imposta il setgid po. Significa anche che x flag è impostato.
Quando il setuid o setgid i flag sono impostati su un file eseguibile, il file viene eseguito con il proprietario del file e/o i privilegi di gruppo.
S Come s , ma il x il flag non è impostato. Questo flag è usato raramente sui file.
t Se trovato negli others tripletta, imposta il sticky bit.
Significa anche che x bandiera è impostata. Questo flag è inutile sui file.
T Come, t ma il x il flag non è impostato. Questo flag è inutile sui file.

Effetto delle autorizzazioni sulle directory (cartelle)

Le directory sono tipi speciali di file che possono contenere altri file e directory.

Autorizzazione Personaggio Significato su Directory
Leggi - Il contenuto della directory non può essere mostrato.
r È possibile visualizzare il contenuto della directory.
(ad esempio, puoi elencare i file all'interno della directory con ls .)
Scrivi - Il contenuto della directory non può essere modificato.
w Il contenuto della directory può essere modificato.
(ad es. puoi creare nuovi file, eliminare file...ecc.)
Esegui - Non è possibile modificare la directory in.
x La directory può essere navigata usando cd .
s Se trovato in user tripletta, imposta il setuid po. Se trovato nel group tripletta imposta il setgid po. Significa anche che x bandiera è impostata. Quando il setgid flag è impostato su una directory, i nuovi file creati al suo interno ereditano l'ID del gruppo di directory (GID) anziché l'ID del gruppo primario dell'utente che ha creato il file.
setuid non ha effetto sulle directory.
S Come s , ma il x il flag non è impostato. Questo flag è inutile nelle directory.
t Se trovato negli others tripletta, imposta il sticky bit.
Significa anche che x bandiera è impostata. Quando lo sticky bit è impostato su una directory, solo il proprietario del file, il proprietario della directory o l'utente amministrativo possono eliminare o rinominare i file all'interno della directory.
T Come t , ma il x il flag non è impostato. Questo flag è inutile nelle directory.

Modifica dei permessi del file #

I permessi del file possono essere modificati usando il chmod comando. Solo il root, il proprietario del file o l'utente con privilegi sudo possono modificare le autorizzazioni di un file. Fai molta attenzione quando usi chmod , soprattutto quando si modificano ricorsivamente le autorizzazioni. Il comando può accettare uno o più file e/o directory separati da uno spazio come argomenti.

Le autorizzazioni possono essere specificate utilizzando una modalità simbolica, una modalità numerica o un file di riferimento.

Metodo simbolico (testo) #

La sintassi di chmod comando quando si utilizza la modalità simbolica ha il seguente formato:

chmod [OPTIONS] [ugoa…][-+=]perms…[,…] FILE...

Il primo set di flag ([ugoa…] ), flag degli utenti, definisce le classi degli utenti per le quali vengono modificate le autorizzazioni al file.

  • u - Il proprietario del file.
  • g - Gli utenti che sono membri del gruppo.
  • o - Tutti gli altri utenti.
  • a - Tutti gli utenti, identici a ugo .

Quando il flag degli utenti viene omesso, il valore predefinito è a .

Il secondo set di flag ([-+=] ), i flag di operazione, definisce se i permessi devono essere rimossi, aggiunti o impostati:

  • - - Rimuove le autorizzazioni specificate.
  • + - Aggiunge autorizzazioni specificate.
  • = - Modifica le autorizzazioni correnti con le autorizzazioni specificate. Se non vengono fornite autorizzazioni dopo = simbolo, tutte le autorizzazioni della classe utente specificata vengono rimosse.

I permessi (perms... ) sono impostati esplicitamente utilizzando zero o una o più delle seguenti lettere:r , w , x , X , s e t . Usa una singola lettera dell'insieme u , g e o quando si copiano i permessi da una classe a un'altra utente.

Quando si impostano i permessi per più di una classe utente ([,…] ), usa le virgole (senza spazi) per separare le modalità simboliche.

Ecco alcuni esempi di come usare chmod comando in modalità simbolica:

  • Concedi ai membri del gruppo il permesso di eseguire il file, ma non di leggerlo e scriverlo:

    chmod g=x filename
  • Rimuovere l'autorizzazione di scrittura per tutti gli utenti:

    chmod a-w filename
  • Rimuovi ricorsivamente l'autorizzazione di esecuzione per altri utenti:

    chmod -R o-x dirname
  • Rimuovere l'autorizzazione di lettura, scrittura ed esecuzione per tutti gli utenti tranne il proprietario del file:

    chmod og-rwx filename

    La stessa cosa può essere eseguita anche utilizzando il seguente modulo:

    chmod og= filename
  • Concedi autorizzazioni di lettura, scrittura ed esecuzione al proprietario del file, autorizzazioni di lettura al gruppo del file e nessuna autorizzazione a tutti gli altri utenti:

    chmod u=rwx,g=r,o= filename

Metodo numerico #

La sintassi di chmod comando quando si utilizza la modalità simbolica ha il seguente formato:

chmod [OPTIONS] NUMBER FILE...

Quando si utilizza la modalità numerica, è possibile impostare i permessi per tutte e tre le classi utente (proprietario, gruppo e tutte le altre) contemporaneamente.

Il numero di autorizzazione può essere un numero di 3 o 4 cifre. Quando viene utilizzato un numero di 3 cifre, la prima cifra rappresenta i permessi del proprietario del file, la seconda il gruppo del file e l'ultima tutti gli altri utenti.

Ciascuna autorizzazione di scrittura, lettura ed esecuzione ha il seguente valore numerico:

  • r (leggi) =4
  • w (scrivere) =2
  • x (esegui) =1
  • nessuna autorizzazione =0

Il numero delle autorizzazioni di una specifica classe utente è rappresentato dalla somma dei valori delle autorizzazioni per quel gruppo.

Per conoscere i permessi del file in modalità numerica, è sufficiente calcolare i totali per tutte le classi di utenti. Ad esempio, per concedere autorizzazioni di lettura, scrittura ed esecuzione al proprietario del file, autorizzazioni di lettura ed esecuzione al gruppo del file e autorizzazioni di lettura solo a tutti gli altri utenti, dovresti procedere come segue:

  • Proprietario:rwx=4+2+1=7
  • Gruppo:r-x=4+0+1=5
  • Altri:r-x=4+0+0=4

Usando il metodo sopra, arriviamo al numero 754 , che rappresenta le autorizzazioni desiderate.

Per impostare il setuid , setgid e sticky bit flag, usa un numero a quattro cifre.

Quando viene utilizzato il numero a 4 cifre, la prima cifra ha il seguente significato:

  • setuid=4
  • setgid=2
  • appiccicoso=1
  • nessuna modifica =0

Le tre cifre successive hanno lo stesso significato di quando si utilizza un numero a 3 cifre.

Se la prima cifra è 0 può essere omessa e la modalità può essere rappresentata con 3 cifre. La modalità numerica 0755 è lo stesso di 755 .

Per calcolare la modalità numerica, puoi anche usare un altro metodo (metodo binario), ma è un po' più complicato. Sapere come calcolare la modalità numerica utilizzando 4, 2 e 1 è sufficiente per la maggior parte degli utenti.

Puoi controllare i permessi del file nella notazione numerica usando il stat comando:

stat -c "%a" file_name

Ecco alcuni esempi di come usare chmod comando in modalità numerica:

  • Concedi al proprietario del file autorizzazioni di lettura e scrittura e autorizzazioni di lettura solo ai membri del gruppo e a tutti gli altri utenti:

    chmod 644 dirname
  • Concedi al proprietario del file autorizzazioni di lettura, scrittura ed esecuzione, autorizzazioni di lettura ed esecuzione ai membri del gruppo e nessuna autorizzazione a tutti gli altri utenti:

    chmod 750 dirname
  • Concedi permessi di lettura, scrittura ed esecuzione e un bit appiccicoso a una determinata directory:

    chmod 1777 dirname
  • Imposta ricorsivamente le autorizzazioni di lettura, scrittura ed esecuzione per il proprietario del file e nessuna autorizzazione per tutti gli altri utenti su una determinata directory:

    chmod -R 700 dirname

Conclusione #

In Linux, l'accesso ai file è limitato utilizzando i permessi, gli attributi e la proprietà dei file. Per modificare i permessi del file usa il chmod comando.


Linux
  1. Nozioni di base sui permessi dei file Linux

  2. Permessi Linux:un'introduzione a chmod

  3. Linux:comprensione delle autorizzazioni e dei tipi di file Unix?

  4. Linux:tutto è un file?

  5. Controlla i permessi dei file Linux con ls

Comando Chmod:come modificare le autorizzazioni dei file in Linux

Comprensione dei processi su Linux

Comprendere i permessi dei file Linux

Esempi di comandi chmod di Linux

Comprensione del multipath di Linux (dm-multipath)

Comprendere le autorizzazioni di base dei file e la proprietà in Linux