In Linux, i permessi dei file, gli attributi e la proprietà 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 base dei permessi di Linux funziona associando ogni file di sistema con un proprietario e un gruppo e assegnando i permessi di accesso 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 consente di controllare quali utenti possono leggere il file, scrivere nel file o eseguire il file.
Per visualizzare i permessi dei file, usa il pulsante ls
comando:
ls -l nome_file
-rw-r--r-- 12 utenti Linux 12.0K 28 apr 10:10 nome_file |[-][-][-]- [------] [---] | | | | | | | | | | | | | +-----------> 7. Gruppo | | | | | +-------------------> 6. Proprietario | | | | +-----------> 5. Metodo di accesso alternativo | | | +--------------> 4. Altri permessi | | +-----------------> 3. Permessi di gruppo | +-----------------------------------> 2. Permessi del proprietario +------------------------------------> 1. Tipo di file
Il primo carattere indica il tipo di file. Può essere un file normale (-
), rubrica (d
), un collegamento simbolico (io
), o altri tipi speciali di file. I seguenti nove caratteri rappresentano i permessi del file, tre terzine di tre caratteri ciascuna. La prima tripletta mostra i permessi del proprietario, la seconda i permessi del gruppo e l'ultima tripletta mostra i permessi 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 gli altri hanno solo 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 siano impostate su un file o su una directory:
Effetto delle autorizzazioni sui file
Autorizzazione | Personaggio | Significato su file |
---|---|---|
Leggere | - | Il file non è leggibile. Non è possibile visualizzare il contenuto del file. |
r | Il file è leggibile. | |
Scrivi | - | Il file non può essere cambiato o modificato. |
w | Il file può essere cambiato o modificato. | |
Eseguire | - | Il file non può essere eseguito. |
X | Il file può essere eseguito. | |
S | Se trovato nel utente tripletta, imposta la setuid po. Se trovato nel gruppo tripletta, imposta la setgid po. Significa anche che X la bandiera è impostata.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 | Uguale a S , ma il X la bandiera non è impostata. Questo flag è usato raramente sui file. | |
t | Se trovato nel altri tripletta, imposta la appiccicoso po.Significa anche che X la bandiera è impostata. Questo flag è inutile sui file. | |
T | Uguale a, t ma il X la bandiera non è impostata. 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 |
---|---|---|
Leggere | - | Il contenuto della directory non può essere mostrato. |
r | È possibile visualizzare il contenuto della directory. (e.g., 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. (e.g., Puoi creare nuovi file, eliminare file... ecc.) | |
Eseguire | - | La directory non può essere modificata in. |
X | È possibile navigare nella directory utilizzando CD . | |
S | Se trovato nel utente tripletta, imposta la setuid po. Se trovato nel gruppo tripletta imposta il setgid po. Significa anche che X la 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) invece dell'ID del gruppo primario dell'utente che ha creato il file.setuid non ha effetto sulle directory. | |
S | Uguale a S , ma il X la bandiera non è impostata. Questo flag è inutile nelle directory. | |
t | Se trovato nel altri tripletta, imposta la appiccicoso po.Significa anche che X la 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 | Uguale a t , ma il X la bandiera non è impostata. Questo flag è inutile nelle directory. |
Modifica autorizzazioni file #
I permessi dei file possono essere modificati usando il chmod
comando. Solo root, il proprietario del file o l'utente con privilegi sudo possono modificare i permessi di un file. Fai molta attenzione quando usi chmod
, soprattutto quando si modificano ricorsivamente i permessi. Il comando può accettare uno o più file e/o directory separati da 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 [OPZIONI] [ugoa… ][-+=]perms… [,… ] FILE…
La prima serie di flag ([ugoa…]
), flag degli utenti, definisce le classi degli utenti per cui vengono modificati i permessi al file.
tu
- Il proprietario del file.g
- Gli utenti che sono membri del gruppo.o
- Tutti gli altri utenti.un
- Tutti gli utenti, identici augo
.
Quando il flag degli utenti viene omesso, il valore predefinito è un
.
La seconda serie di bandiere ([-+=]
), i flag di operazione, definisce se i permessi devono essere rimossi, aggiunti o impostati:
-
- Rimuove le autorizzazioni specificate.+
- Aggiunge autorizzazioni specificate.=
- Cambia i permessi correnti nei permessi specificati. Se non vengono concesse autorizzazioni dopo il=
simbolo, tutte le autorizzazioni dalla classe utente specificata vengono rimosse.
I permessi (permanenti..
) sono impostati esplicitamente utilizzando zero o una o più delle seguenti lettere: r
, w
, X
, X
, S
, e t
. Usa una sola lettera dal set tu
, g
, e o
quando si copiano i permessi da una classe all'altra degli utenti.
Quando si impostano le autorizzazioni per più di una classe utente ([,… ]
), usa le virgole (senza spazi) per separare le modalità simboliche.
Ecco alcuni esempi di come utilizzare il chmod
comando in modalità simbolica:
Dai ai membri del gruppo il permesso di eseguire il file, ma non di leggerlo e scriverci:
chmod g=x nomefile
Rimuovere l'autorizzazione alla scrittura per tutti gli utenti:
chmod a-w nome file
Rimuovere in modo ripugnante 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 nomefile
La stessa cosa può essere realizzata anche utilizzando il seguente modulo:
chmod og= nome file
Dai i permessi di lettura, scrittura ed esecuzione al proprietario del file, leggi i permessi al gruppo del file e nessun permesso a tutti gli altri utenti:
chmod u=rwx,g=r,o= nomefile
Metodo numerico #
La sintassi di chmod
comando quando si utilizza la modalità simbolica ha il seguente formato:
chmod [OPZIONI] NUMERO 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 si utilizza un numero a 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.
Ogni autorizzazione di scrittura, lettura ed esecuzione ha il seguente valore numerico:
r
(leggi) = 4w
(scrivi) = 2X
(esegui) = 1- nessun permesso = 0
Il numero di permessi di una specifica classe utente è rappresentato dalla somma dei valori dei permessi per quel gruppo.
Per conoscere i permessi del file in modalità numerica è sufficiente calcolare i totali per tutte le classi degli utenti. Ad esempio, per dare i permessi di lettura, scrittura ed esecuzione al proprietario del file, leggere ed eseguire i permessi al gruppo del file e solo leggere i permessi a tutti gli altri utenti, dovresti fare quanto 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 i permessi desiderati.
Per impostare il setuid
, setgid
, e bit appiccicoso
bandiere, usa un numero di quattro cifre.
Quando si utilizza 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
equivale a 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 statistica
comando:
stat -c "%a" nome_file
Ecco alcuni esempi di come utilizzare il chmod
comando in modalità numerica:
Assegna al proprietario del file le autorizzazioni di lettura e scrittura e le autorizzazioni di lettura solo ai membri del gruppo e a tutti gli altri utenti:
chmod 644 dirname
Dai al proprietario del file i permessi di lettura, scrittura ed esecuzione, leggi ed esegui i permessi ai membri del gruppo e nessun permesso a tutti gli altri utenti:
chmod 750 dirname
Assegna le autorizzazioni di lettura, scrittura ed esecuzione e un bit appiccicoso a una determinata directory:
chmod 1777 cognome
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 permessi, attributi e proprietà dei file. Per modificare i permessi del file usa il pulsante chmod
comando.
Se hai domande o commenti, non esitare a lasciare un commento.