Guida avanzata a Solaris

Impostazione di autorizzazioni assolute

Finora si è parlato del comando chmod per la modifica delle autorizzazioni in modo relativo rispetto alle impostazioni correnti. Il comando chmod prevede tuttavia un'altra forma di utilizzo, in cui vengono impiegati codici numerici per specificare i diversi tipi di autorizzazioni. Utilizzato in questa forma, chmod permette di impostare le autorizzazioni di un file o di una directory in modo assoluto.

La sintassi di chmod per l'impostazione di autorizzazioni assolute è la seguente:

chmod codnum nome

dove codnum è il codice numerico e nome è il nome del file o della directory su cui si desidera eseguire l'operazione.

Il codice numerico completo è costituito da tre cifre. Ogni cifra viene utilizzata per una delle tre categorie di utenti: proprietario, gruppo e altri. Ad esempio, il comando seguente imposta le autorizzazioni assolute di lettura, scrittura ed esecuzione per il proprietario e per il gruppo e la sola autorizzazione di esecuzione per gli altri utenti:

$ chmod 771 rosa

La Tabella 3-1 illustra la correlazione tra le autorizzazioni descritte per il file rosa e il codice numerico 771.

Tabella 3-1 Autorizzazioni del file rosa

Autorizzazione 

Proprietario 

Gruppo 

Altri 

Lettura 

Scrittura 

Esecuzione 

Totale 

Ogni colonna della Tabella 3-1 rappresenta una delle categorie di utenti: proprietario, gruppo e altri. Per impostare le autorizzazioni in lettura occorre aggiungere il codice 4 alla colonna appropriata; per impostare le autorizzazioni in scrittura occorre aggiungere un 2, mentre per le autorizzazioni di esecuzione occorre aggiungere un 1. Il totale delle tre colonne indicato nell'ultima riga della tabella rappresenta il codice numerico completo.

Qui di seguito è illustrato un altro esempio dell'uso di questo metodo per impostare le autorizzazioni assolute, con l'aggiunta del comando ls -l per evidenziare il risultato ottenuto:

$ ls -l mughetto
-rw-r--r--  3 utente2           1024 feb 10 11:46 mughetto
$ chmod 755 mughetto
$ ls -l mughetto
-rwxr-xr-x  3 utente2           1024 feb 10 11:48 mughetto
$

Le autorizzazioni del file mughetto sono state impostate in modo che il proprietario possa leggere, scrivere ed eseguire il file, e in modo che i membri del gruppo e gli altri utenti possano leggerlo ed eseguirlo. La Tabella 3-2 illustra nei dettagli la composizione del codice numerico relativo alle autorizzazioni del file mughetto.

Tabella 3-2 Autorizzazioni del file mughetto

Autorizzazione 

Proprietario 

Gruppo 

Altri 

Lettura 

Scrittura 

Esecuzione 

Totale 

Per applicare al file ciclamino le autorizzazioni di lettura, scrittura ed esecuzione per tutte le categorie di utenti, il comando da eseguire sarà il seguente:

$ ls -l ciclamino
-rw-r--r--  3 utente2           1024 feb 10 11:51 ciclamino
$ chmod 777 ciclamino
$ ls -l ciclamino
-rwxrwxrwx  3 utente2           1024 feb 10 11:53 ciclamino
$

La Tabella 3-3 illustra la composizione del codice utilizzato per questo esempio.

Tabella 3-3 Autorizzazioni del file ciclamino

Autorizzazione 

Proprietario 

Gruppo 

Altri 

Lettura 

Scrittura 

Esecuzione 

Totale 

Il codice numerico 777 rappresenta il livello massimo di autorizzazioni che è possibile attribuire a un file o a una directory.

Come per la modifica delle autorizzazioni relative, anche nel caso delle autorizzazioni assolute è possibile usare il carattere speciale * per eseguire il comando su tutti i file della directory corrente. Ad esempio, per modificare le autorizzazioni assolute di tutti i file della directory corrente fiori in modo che il proprietario abbia le autorizzazioni di lettura, scrittura ed esecuzione, il gruppo le autorizzazioni di lettura ed esecuzione e gli altri utenti solo l'autorizzazione di esecuzione, inserire il comando seguente:

$ pwd
/home/utente2/fiori
$ ls -l
-rwxrwxrwx  3 utente2          21032 feb 12 10:31 giglio
-rwxrwxrwx  3 utente2          12675 feb 08 09:31 mughetto
-rwxrwxrwx  2 utente2             68 feb 10 11:09 narciso
-rwxrwxrwx  1 utente2           1024 feb 14 16:38 rosa
$ chmod 751 *
$ ls -l
-rwxr-x--x  3 utente2          21032 feb 12 10:31 giglio
-rwxr-x--x  3 utente2          12675 feb 08 09:31 mughetto
-rwxr-x--x  2 utente2             68 feb 10 11:09 narciso
-rwxr-x--x  1 utente2           1024 feb 14 16:38 rosa
$

Nell`esempio viene utilizzato anche il comando pwd per verificare che la directory nella quale si esegue l'operazione sia la directory corrente. Il comando ls -l è inserito solo per illustrare il risultato della modifica delle autorizzazioni. Quando si impostano le autorizzazioni assolute non è necessario conoscere le autorizzazioni correnti.

Per maggiori informazioni sul comando chmod(1), vedere man Pages(1): User Commands.