CHOWN
chown (change owner) È il comando grazie al quale possiamo cambiare il proprietario e il gruppo di un file o directory. La sua sintassi È molto semplice, basterà indicare separati da un punto il nuovo utente e il nuovo gruppo per un file.
Vediamo in dettaglio i file contenuti nella seguente directory.
andrea@lnxbox1:~/programmazione$ ls -la total 96 drwxr-xr-x 6 andrea amici 4096 May 13 00:19 . drwxr-xr-- 78 andrea amici 12288 May 13 00:14 .. -rwxr-xr-x 1 andrea amici 27767 Feb 13 22:47 Prog -rw-r--r-- 1 andrea amici 35594 Feb 13 22:13 Prog.c drwxr-xr-x 2 andrea amici 4096 Jan 13 00:14 cpp drwxr-xr-x 2 andrea amici 4096 Jan 13 00:14 perl drwxr-xr-x 2 andrea amici 4096 Jan 13 00:14 php drwxr-xr-x 2 andrea amici 4096 Jan 13 00:15 python
Come abbiamo già visto tutti i file sono di proprietà di andrea e hanno come gruppo di appartenenza amici. Se vogliamo cambiare l'owner o il group dovremo assumere l'identità di root, quindi scriviamo:
andrea@lnxbox1:~/programmazione$ su
Password:
Dopo aver messo la password di root saremo in grado di eseguire comandi con i suoi privilegi (l'identità del superuser È distinguibile dal # presente nel prompt al posto del $). Proviamo ora a cambiare il proprietario del file Prog da andrea a mario.
lnxbox1:/home/andrea/programmazione# chown mario Prog
lnxbox1:/home/andrea/programmazione# ls -la Prog
-rwxr-xr-x 1 mario amici 27767 Feb 13 22:47 Prog
Come vedete il file ha ora un nuovo owner. Notare anche che i permessi sono rimasti invariati, il nuovo proprietario potrà quindi leggere, modificare o eseguire il file.
Poniamo ora di voler cambiare anche il gruppo da amici in colleghi. Basterà anteporre il gruppo da un . per sostituirlo.
lnxbox1:/home/andrea/programmazione# chown .colleghi Prog
lnxbox1:/home/andrea/programmazione# ls -la Prog
-rwxr-xr-x 1 mario colleghi 27767 Feb 13 22:47 Prog
Anche in questo caso i permessi sono rimasti gli stessi. È possibile cambiare sia il proprietario che il gruppo contemporaneamente, basta separarli da un . (punto), come nell'esempio che segue.
lnxbox1:/home/andrea/programmazione# chown root.root Prog
lnxbox1:/home/andrea/programmazione# ls -la Prog
-rwxr-xr-x 1 root root 27767 Feb 13 22:47 Prog
Ora solo l'amministratore di sistema o chi fa parte del suo gruppo potrà leggere il file, mentre tutti potranno comunque eseguirlo.
CHMOD
Con chmod saremo in grado di cambiare anche i permessi per i file. La sintassi di chmod ammette due modi di indicare i permessi, uno sotto forma di 3 cifre ottali (cioÈ da 0 a 7 inclusi), e uno attraverso degli operatori simbolici.
La rappresentazione in forma ottale può sembrare complessa, ma risulta essere anche la più veloce e compatta. Il suo funzionamento È basato su delle combinazioni numeriche che ci danno univocamente i permessi di un file. Con questa rappresentazione viene assegnato il valore 1 al permesso di esecuzione, 2 a quello di scrittura e 4 a quello di lettura. La somma di questi valori ci dà il permesso risultante per l'utente, il gruppo o gli altri. Nell'esecuzione di chmod dovremo riportare i permessi che vogliamo assegnare utilizzando le tre cifre (una per l'owner, una per il group, e una per other) secondo il precedente metodo. Per una semplificazione riporto il seguente schema:
- 0 Nessun permesso (---)
- 1 Permesso in esecuzione (--x)
- 2 Permesso in scrittura (-w-)
- 3 Permesso in scrittura ed esecuzione (-wx)
- 4 Permesso in lettura (r--)
- 5 Permesso in lettura ed esecuzione (r-x)
- 6 Permesso in lettura e scrittura (rw-)
- 7 Permesso in lettura, scrittura ed esecuzione (rwx)
Un altro modo più semplice È indicare come parametro tramite un identificativo (u per l'owner, g per il gruppo, o per gli altri) gli utenti che accedono al file dei quali vogliamo cambiare i permessi seguito da un + o un - a seconda che vogliamo aggiungere o togliere quel determinato permesso e da r, w oppure x in base alle modifiche da attuare.
Ad esempio per cambiare da -r--r--r-- a -rw-r--r-- i permessi di un file possiamo usare:
chmod 644 file
oppure
chmod u+w file
Se vogliamo cambiarli da -r--r--r-- a -rwxrwxr-x
chmod 775 file
oppure
chmod ug+w file chmod ugo+x file
Al posto di "ugo" È possibile mettere "a" oppure niente ("ugo+x" = "a+x" = "+x").
Se vogliamo che possa accedere a un file in lettura solo il proprietario (passare quindi da -r--r--r-- a -r--------) scriveremo:
chmod 400 file
oppure
chmod go-r file
Oltre ai permessi di scrittura lettura ed esecuzione È possibile indicare come modalità: SUID (Set User Id), SGID (Set Group ID) e Sticky (Save Text Image). Il loro uso È spesso ignorato dall'utente medio ed È bene (se sono presenti) lasciarli invariati, a meno che non venga chiesto esplicitamente di cambiarli (potrebbe accadere che una distribuzione consigli di togliere per esempio il SUID da un file come momentanea soluzione a un bug che può implicare problemi di sicurezza).