In questo capitolo, discuteremo in dettaglio il file di autorizzazione e le modalità di accesso in Unix. La proprietà dei file è un componente importante di Unix che fornisce un metodo sicuro per la memorizzazione dei file., Ogni file in Unix ha i seguenti attributi –
-
Autorizzazioni del proprietario-Le autorizzazioni del proprietario determinano quali azioni il proprietario del file può eseguire sul file.
-
Autorizzazioni di gruppo: le autorizzazioni del gruppo determinano le azioni che un utente, membro del gruppo a cui appartiene un file, può eseguire sul file.
-
Altre autorizzazioni (mondo) − Le autorizzazioni per gli altri indicano quale azione tutti gli altri utenti possono eseguire sul file.,
Gli indicatori di autorizzazione
Durante l’utilizzo del comando ls-l, visualizza varie informazioni relative all’autorizzazione del file come segue −
$ls -l /home/amrood-rwxr-xr-- 1 amrood users 1024 Nov 2 00:10 myfiledrwxr-xr--- 1 amrood users 1024 Nov 2 00:10 mydir
Qui, la prima colonna rappresenta diverse modalità di accesso, ovvero l’autorizzazione associata a un file o una directory.
I permessi sono suddivisi in gruppi di tre, e ogni posizione nel gruppo denota un permesso specifico, in questo ordine: read (r), write (w), execute (x) −
Modalità di accesso ai file
I permessi di un file sono la prima linea di difesa nella sicurezza di un sistema Unix., I blocchi di base delle autorizzazioni Unix sono le autorizzazioni di lettura, scrittura ed esecuzione, che sono state descritte di seguito −
Read
Garantisce la capacità di leggere, cioè visualizzare il contenuto del file.
Write
Consente di modificare o rimuovere il contenuto del file.
Esegui
L’utente con autorizzazioni di esecuzione può eseguire un file come programma.
Modalità di accesso alle directory
Le modalità di accesso alle directory sono elencate e organizzate nello stesso modo di qualsiasi altro file., Ci sono alcune differenze che devono essere menzionate-
Leggi
L’accesso a una directory significa che l’utente può leggere il contenuto. L’utente può guardare i nomi dei file all’interno della directory.
Scrivere
Accesso significa che l’utente può aggiungere o eliminare i file dalla directory.
Esegui
L’esecuzione di una directory non ha davvero senso, quindi pensa a questo come a un permesso di traverse.
Un utente deve avere accesso execute alla directory bin per eseguire il comando ls o cd.,
Modifica delle autorizzazioni
Per modificare le autorizzazioni del file o della directory, si utilizza il comando chmod (change mode). Ci sono due modi per usare chmod: la modalità simbolica e la modalità assoluta.
Usare chmod in modalità simbolica
Il modo più semplice per un principiante di modificare i permessi di file o directory è usare la modalità simbolica. Con le autorizzazioni simboliche è possibile aggiungere, eliminare o specificare il set di autorizzazioni desiderato utilizzando gli operatori nella tabella seguente.
Sr.No., | Operatore Chmod& Descrizione |
---|---|
1 |
+ Aggiunge le autorizzazioni designate a un file o directory. |
2 |
Rimuove i permessi designati da un file o da una directory. |
3 |
= Imposta le autorizzazioni designate. |
Ecco un esempio usando testfile., L’esecuzione di ls -1 sul file di prova mostra che il file autorizzazioni sono i seguenti:
$ls -l testfile-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
Poi ogni esempio di comando chmod dalla tabella precedente è eseguito sul file di prova, seguito da ls –l, così si possono vedere le modifiche di autorizzazione −
Ecco come è possibile combinare questi comandi su di una sola linea −
$chmod o+wx,u-x,g = rx testfile$ls -l testfile-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile
Usando chmod con Assoluta Permessi
Il secondo modo per modificare i permessi con il comando chmod, è quello di utilizzare un numero per specificare per ogni set di autorizzazioni per il file.,
A ogni autorizzazione viene assegnato un valore, come mostra la tabella seguente, e il totale di ciascun set di autorizzazioni fornisce un numero per quel set.
Ecco un esempio utilizzando il file di test. L’esecuzione di ls -1 sul file di prova mostra che il file autorizzazioni sono i seguenti:
$ls -l testfile-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
Poi ogni esempio di comando chmod dalla tabella precedente è eseguito sul file di prova, seguito da ls –l, così si possono vedere le modifiche di autorizzazione −
la Modifica dei Proprietari e Gruppi
Mentre la creazione di un account su Unix, assegna un ID del proprietario e un ID di gruppo per ogni utente., Tutte le autorizzazioni di cui sopra vengono assegnate anche in base al proprietario e ai Gruppi.
Sono disponibili due comandi per cambiare il proprietario e il gruppo di file −
-
chown − Il comando chown sta per “change owner” e viene utilizzato per cambiare il proprietario di un file.
-
chgrp-Il comando chgrp sta per “change group” ed è usato per cambiare il gruppo di un file.
Modifica della proprietà
Il comando chown modifica la proprietà di un file., La sintassi di base è la seguente-
$ chown user filelist
Il valore dell’utente può essere il nome di un utente sul sistema o l’id utente (uid) di un utente sul sistema.
Il seguente esempio ti aiuterà a capire il concetto −
$ chown amrood testfile$
Cambia il proprietario del file dato all’utente amrood.
NOTA-Il super utente, root, ha la capacità illimitata di cambiare la proprietà di qualsiasi file, ma gli utenti normali possono cambiare la proprietà solo di quei file che possiedono.,
Modifica della proprietà del gruppo
Il comando chgrp modifica la proprietà del gruppo di un file. La sintassi di base è la seguente-
$ chgrp group filelist
Il valore di group può essere il nome di un gruppo sul sistema o l’ID di gruppo (GID) di un gruppo sul sistema.
Il seguente esempio ti aiuta a capire il concetto −
$ chgrp special testfile$
Cambia il gruppo del file dato in gruppo speciale.
SUID e SGID File Permission
Spesso quando un comando viene eseguito, dovrà essere eseguito con privilegi speciali per poter svolgere il suo compito.,
Ad esempio, quando si modifica la password con il comando passwd, la nuova password viene memorizzata nel file /etc/shadow.
Come utente normale, non si dispone di accesso in lettura o scrittura a questo file per motivi di sicurezza, ma quando si modifica la password, è necessario disporre del permesso di scrittura per questo file. Ciò significa che il programma passwd deve darti autorizzazioni aggiuntive in modo che tu possa scrivere nel file /etc/shadow.
Autorizzazioni aggiuntive sono date ai programmi tramite un meccanismo noto come Set User ID (SUID) e Set Group ID (SGID) bit.,
Quando si esegue un programma con il bit SUID abilitato, si ereditano le autorizzazioni del proprietario del programma. I programmi che non hanno il set di bit SUID vengono eseguiti con le autorizzazioni dell’utente che ha avviato il programma.
Questo è il caso anche di SGID. Normalmente, i programmi vengono eseguiti con le autorizzazioni del gruppo, ma invece il gruppo verrà modificato solo per questo programma per il proprietario del gruppo del programma.
I bit SUID e SGID appariranno come lettera “s” se l’autorizzazione è disponibile., Il bit SUID “s” si troverà nei bit di autorizzazione in cui risiede normalmente l’autorizzazione di esecuzione dei proprietari.
Ad esempio, il comando −
$ ls -l /usr/bin/passwd-r-sr-xr-x 1 root bin 19031 Feb 7 13:47 /usr/bin/passwd*$
Mostra che il bit SUID è impostato e che il comando è di proprietà del root. Una lettera maiuscola S nella posizione di esecuzione invece di una minuscola s indica che il bit di esecuzione non è impostato.,
Se lo sticky bit è attivato sulla directory, i file possono essere rimossi solo se una delle seguenti utenti −
- Il proprietario dei appiccicoso directory
- Il proprietario del file viene rimosso
- Il super utente, root
Per impostare il bit SUID e SGID per qualsiasi directory provare il seguente comando −
$ chmod ug+s dirname$ ls -ldrwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname$