Corso di terminale Linux - i permessi
Sommario:
- Autorizzazioni file Linux
- Usando
chmod
- Metodo simbolico (testo)
- Metodo numerico
- Utilizzando un file di riferimento
- Modifica ricorsiva delle autorizzazioni del file
- Operando su collegamenti simbolici
- Modifica delle autorizzazioni dei file in blocco
- Conclusione
In Linux, l'accesso ai file è gestito attraverso le autorizzazioni, gli attributi e la proprietà dei file. Ciò garantisce che solo utenti e processi autorizzati possano accedere a file e directory.
Questa esercitazione illustra come utilizzare il comando
chmod
per modificare le autorizzazioni di accesso a file e directory.
Autorizzazioni file Linux
Prima di andare oltre, spieghiamo il modello di base delle autorizzazioni Linux.
In Linux, ogni file è associato a un proprietario e un gruppo e assegnato con diritti di accesso di autorizzazione per tre diverse classi di utenti:
- Il proprietario del file. I membri del gruppo. Altri (tutti gli altri).
La proprietà del file può essere cambiata usando i comandi
chown
e
chgrp
.
Esistono tre tipi di autorizzazioni file applicabili a ciascuna classe:
- Il permesso di lettura. Il permesso di scrittura. Il permesso di esecuzione.
Questo concetto consente di specificare a quali utenti è consentito leggere il file, scrivere sul file o eseguire il file.
Le autorizzazioni per i file possono essere visualizzate utilizzando il comando
ls
:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type
Il primo carattere mostra il tipo di file. Può essere un file normale (
-
), una directory (
d
), un collegamento simbolico (
l
) o qualsiasi altro tipo speciale di file.
I successivi nove caratteri rappresentano le autorizzazioni del file, tre terzine di tre caratteri ciascuna. La prima terzina mostra le autorizzazioni del proprietario, le seconde autorizzazioni di un gruppo e l'ultima terzina mostra le autorizzazioni di tutti gli altri. Le autorizzazioni possono avere un significato diverso a seconda del tipo di file.
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--
).
Ognuna delle tre terzine di autorizzazione può essere costruita con i seguenti caratteri e avere effetti diversi, a seconda che siano impostati su un file o su una directory:
Effetto delle autorizzazioni sui file
Autorizzazione | Personaggio | Significato sul 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 nella terzina
user
imposta il bit
setuid
. Se trovato nella tripletta del
group
, imposta il bit
setgid
. Significa anche che è impostato il flag
x
.
Quando i flag
|
|
S
|
Come
s
ma il flag
x
non è impostato. Questo flag viene usato raramente sui file. |
|
t
|
Se trovato nella tripletta degli
others
imposta il bit
sticky
.
Significa anche che è impostato il flag
|
|
T
|
Come
t
ma il flag
x
non è impostato. Questo flag è inutile sui file. |
Effetto delle autorizzazioni sulle directory (cartelle)
In Linux, le directory sono tipi speciali di file che contengono altri file e directory.
Autorizzazione | Personaggio | Significato su Directory |
---|---|---|
Leggere |
-
|
Non è possibile visualizzare il contenuto della directory. |
r
|
È possibile visualizzare il contenuto della directory.
(es. Puoi elencare i file all'interno della directory con
|
|
Scrivi |
-
|
Il contenuto della directory non può essere modificato. |
w
|
Il contenuto della directory può essere modificato.
(ad es. non è possibile creare nuovi file, eliminare file..etc.) |
|
Eseguire |
-
|
La directory non può essere cambiata in. |
x
|
La directory può essere navigata usando
cd
. |
|
s
|
Se trovato nella terzina
user
, imposta il bit
setuid
. Se trovato nella tripletta del
group
imposta il bit
setgid
. Significa anche che è impostato il flag
x
. Quando il flag
setgid
è 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.
|
|
S
|
Come
s
ma il flag
x
non è impostato. Questa bandiera è inutile nelle directory. |
|
t
|
Se trovato nella tripletta degli
others
imposta il bit
sticky
.
Significa anche che è impostato il flag
|
|
T
|
Come
t
ma il flag
x
non è impostato. Questa bandiera è inutile nelle directory. |
Usando
chmod
Il comando
chmod
assume la seguente forma generale:
chmod MODE FILE…
Il comando
chmod
consente di modificare le autorizzazioni su un file utilizzando una modalità simbolica o numerica o un file di riferimento. Spiegheremo le modalità in modo più dettagliato in seguito. Il comando può accettare uno o più file e / o directory separati da spazio come argomenti.
Solo root, il proprietario del file o l'utente con i privilegi di sudo può modificare le autorizzazioni di un file. Fai molta attenzione quando usi
chmod
, specialmente quando cambi le autorizzazioni in modo ricorsivo.
Metodo simbolico (testo)
La sintassi del comando
chmod
quando si utilizza la modalità simbolica ha il seguente formato:
chmod perms… FILE…
Il primo set di flag (
), gli utenti flag, definisce quali utenti classificano le autorizzazioni per il file.
-
u
- Il proprietario del file.g
- Gli utenti che sono membri del gruppo.o
- Tutti gli altri utenti.a
- Tutti gli utenti, identici augo
.
Se il flag degli utenti viene omesso, quello predefinito è
a
e le autorizzazioni impostate da umask non sono interessate.
La seconda serie di flag (
), i flag di operazione, definiscono se le autorizzazioni devono essere rimosse, aggiunte o impostate:
-
-
Rimuove le autorizzazioni specificate.+
Aggiunge le autorizzazioni specificate.=
Modifica le autorizzazioni correnti nelle autorizzazioni specificate. Se non vengono specificate autorizzazioni dopo il simbolo=
, tutte le autorizzazioni della classe utente specificata vengono rimosse.
Le autorizzazioni (
perms…
) possono essere impostate esplicitamente utilizzando zero o una o più delle seguenti lettere:
r
,
w
,
x
,
X
,
s
, e
t
. Utilizzare una singola lettera dall'insieme
u
,
g
e
o
quando si copiano le autorizzazioni da una classe di utenti a un'altra.
Quando si impostano le autorizzazioni per più di una classe utente (
), utilizzare le virgole (senza spazi) per separare le modalità simboliche.
Di seguito sono riportati alcuni esempi su come utilizzare il comando
chmod
in modalità simbolica:
-
Concedere ai membri del gruppo l'autorizzazione a leggere il file, ma non a scriverlo ed eseguirlo:
chmod g=r filename
Rimuovere l'autorizzazione di esecuzione per tutti gli utenti:
chmod ax filename
Rimuovere repulsivamente l'autorizzazione in scrittura per altri utenti:
chmod -R ow dirname
Rimuovere le autorizzazioni di lettura, scrittura ed esecuzione per tutti gli utenti tranne il proprietario del file:
chmod og-rwx filename
La stessa cosa può essere realizzata anche utilizzando il seguente modulo:
chmod og= filename
Concedi le 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
Aggiungi le autorizzazioni del proprietario del file alle autorizzazioni che hanno i membri del gruppo del file:
chmod g+u filename
Aggiungi un bit appiccicoso a una determinata directory:
chmod o+t dirname
Metodo numerico
La sintassi del comando
chmod
quando si utilizza il metodo numerico ha il seguente formato:
chmod NUMBER FILE…
Quando si utilizza la modalità numerica, è possibile impostare le autorizzazioni per tutte e tre le classi utente (proprietario, gruppo e tutte le altre) contemporaneamente.
Il
NUMBER
può essere un numero di 3 o 4 cifre.
Quando viene utilizzato un numero di 3 cifre, la prima cifra rappresenta le autorizzazioni del proprietario del file, la seconda del 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 nessuna autorizzazione = 0
Il numero di autorizzazioni di una specifica classe utente è rappresentato dalla somma dei valori delle autorizzazioni per quel gruppo.
Per scoprire le autorizzazioni del file in modalità numerica, è sufficiente calcolare i totali per tutte le classi di utenti. Ad esempio, per concedere le autorizzazioni di lettura, scrittura ed esecuzione al proprietario del file, leggere ed eseguire le autorizzazioni per il gruppo del file e leggere le autorizzazioni solo per tutti gli altri utenti, procedere come segue:
- Proprietario: rwx = 4 + 2 + 1 = 7Gruppo: rx = 4 + 0 + 1 = 5 Altre: rx = 4 + 0 + 0 = 4
Usando il metodo sopra arriviamo al numero
754
, che rappresenta le autorizzazioni desiderate.
Per impostare i flag di
setuid
,
setgid
e
sticky bit
usare un numero di quattro cifre.
Quando viene utilizzato il numero di 4 cifre, la prima cifra ha il seguente significato:
- setuid = 4setgid = 2sticky = 1no modifiche = 0
Le tre cifre successive hanno lo stesso significato di quando si utilizza un numero di 3 cifre.
Se la prima cifra è 0, può essere omessa e la modalità può essere rappresentata con 3 cifre. La modalità numerica
0755
è uguale 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 usando 4, 2 e 1 è sufficiente per la maggior parte degli utenti.
Puoi controllare le autorizzazioni del file nella notazione numerica usando il comando
stat
:
stat -c "%a" filename
644
Ecco alcuni esempi di come utilizzare il comando
chmod
in modalità numerica:
-
Concedi le autorizzazioni di lettura e scrittura al proprietario del file e leggi solo le autorizzazioni per i membri del gruppo e tutti gli altri utenti:
chmod 644 dirname
Concedi al proprietario del file di leggere, scrivere ed eseguire le autorizzazioni, leggere ed eseguire le autorizzazioni per i membri del gruppo e nessuna autorizzazione per tutti gli altri utenti:
chmod 750 dirname
Dare le autorizzazioni di lettura, scrittura ed esecuzione e un bit appiccicoso a una determinata directory:
chmod 1777 dirname
Impostare in modo ricorsivo 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
Utilizzando un file di riferimento
L'opzione
--reference=ref_file
consente di impostare le autorizzazioni del file in modo che siano uguali a quelle del file di riferimento specificato (
ref_file
).
chmod --reference=REF_FILE FILE
Ad esempio, il comando seguente assegnerà le autorizzazioni di
file1
a
file2
Modifica ricorsiva delle autorizzazioni del file
Per operare in modo ricorsivo su tutti i file e le directory nella directory specificata, utilizzare l'opzione
-R
(
--recursive
):
chmod -R MODE DIRECTORY
Ad esempio, per modificare le autorizzazioni di tutti i file e le sottodirectory della directory
/var/www
su
755
dovresti usare:
Operando su collegamenti simbolici
I collegamenti simbolici hanno sempre
777
autorizzazioni.
Per impostazione predefinita, quando si modificano le autorizzazioni di symlink,
chmod
modificherà le autorizzazioni sul file a cui punta il collegamento.
chmod 755 symlink
È probabile che invece di modificare la proprietà di destinazione, verrà visualizzato l'errore "Impossibile accedere a" collegamento simbolico: Autorizzazione negata ".
L'errore si verifica perché per impostazione predefinita sulla maggior parte delle distribuzioni Linux i collegamenti simbolici sono protetti e non è possibile operare sui file di destinazione. Questa opzione è specificata in
/proc/sys/fs/protected_symlinks
.
1
significa abilitato e
0
disabilitato. Si consiglia di non disabilitare la protezione del collegamento simbolico.
Modifica delle autorizzazioni dei file in blocco
A volte ci sono situazioni in cui è necessario modificare in blocco i file e le autorizzazioni delle directory.
Lo scenario più comune è modificare in modo ricorsivo le autorizzazioni del file del sito Web in
644
e le autorizzazioni della directory in
755
.
Utilizzando il metodo numerico:
find /var/www/my_website -type d -exec chmod 755 {} ;
find /var/www/my_website -type f -exec chmod 644 {} ;
Utilizzando il metodo simbolico:
find /var/www/my_website -type d -exec chmod u=rwx, go=rx {} ;
find /var/www/my_website -type f -exec chmod u=rw, go=r {} ;
Il comando
find
cercherà i file e le directory in
/var/www/my_website
e passerà ogni file e directory trovati al comando
chmod
per impostare le autorizzazioni.
Conclusione
Il comando
chmod
modifica le autorizzazioni del file. Le autorizzazioni possono essere impostate utilizzando la modalità simbolica o numerica.
Per saperne di più su
chmod
visita la pagina man di chmod.
Strumento di permessi efficaci per file e cartelle in Windows 7
Questo post vi dirà quali sono le autorizzazioni effettive di file e cartelle per un utente o Gruppo di utenti in Windows e mostra come visualizzarli, anche scaricare lo strumento Autorizzazioni effettive.
MyPermissions: controlla i permessi delle app dei siti web social
Leggi la recensione di MyPermissions Cleaner. È uno strumento gratuito per scansionare e pulire le autorizzazioni concesse a diverse app e siti Web durante l`utilizzo di app per social media.
Come resettare i permessi dei file NTFS in Windows 10/8/7
Ripristina i permessi dei file NTFS è un freeware che ti consente di ripristinare o ripristinare le autorizzazioni di file e sicurezza in Windows 10/8/7, senza utilizzare la riga di comando.