I comandi elencati qui sotto servono a modificare il proprietario o il gruppo proprietario di un file, o i suoi permessi. Abbiamo visto in cosa consistono i permessi nel capitolo Concetti base di Unix del Manuale utente.
La sintassi del comando chown è la seguente:
chown [opzioni] <utente[.gruppo]> <file|directory> [file|directory...] |
Le opzioni includono:
-R Modalità ricorsiva: modifica il proprietario di tutti i file e le directory in una directory.
-v Modalità prolissa: descrive tutte le operazioni compiute dal comando chown; riporta quali file hanno cambiato proprietario e quali sono rimasti invariati.
-c Simile all'opzione -v, ma riporta solo quali file sono cambiati.
Alcuni esempi:
chown nobody /shared/book.tex cambia il proprietario del file /shared/book.tex in nobody.
chown -Rc darth.music *.mid concerts/ attribuisce la proprietà di tutti i file nella directory corrente il cui nome termina con .mid e di tutti i file e le sotto-directory nella directory concerts/ all'utente darth e al gruppo music, elencando solo i file modificati dal comando.
Il comando chgrp vi consente di cambiare il gruppo proprietario di uno o più file; la sua sintassi è molto simile a quella di chown:
chgrp [opzioni] <gruppo> <file|directory> [file|directory...] |
Le opzioni di questo comando sono le stesse di chown, e anche il suo utilizzo è molto simile. Pertanto, il comando:
chgrp disk /dev/hd*
attribuisce al gruppo disk tutti i file nella directory /dev/ il cui nome comincia con hd.
Il comando chmod ha una sintassi molto particolare. La sintassi generica è:
chmod [opzioni] <cambio modo> <file|directory> [file|directory...] |
ma ciò che lo distingue sono i diversi modi in cui la modifica dei permessi può essere specificata. In particolare, si possono utilizzare due formati:
in ottale: in questo caso i permessi dell'utente proprietario sono indicati nella forma <x>00, dove <x> corrisponde al permesso assegnato: 4 per il permesso di lettura, 2 per quello di scrittura e 1 per quello di esecuzione; allo stesso modo i permessi del gruppo proprietario vengono espressi come <x>0 e i permessi per gli altri utenti ("others") nella forma <x>. Pertanto tutto quello che dovete fare è sommare insieme i permessi per ottenere la cifra corretta. Quindi i permessi rwxr-xr-- corrispondono a 400+200+100 (diritti del proprietario, rwx) +40+10 (diritti del gruppo, r-x) +4 (diritti degli altri, r--) = 754; se utilizzate chmod in questo modo, i permessi vengono espressi in forma assoluta e i permessi assegnati in precedenza vengono sovrascritti;
con delle espressioni: in questo caso i permessi vengono indicati da una sequenza di espressioni separate da virgole, da specificare nel formato [categoria]<+|-><permessi>. La categoria può essere indicata da una o più lettere u (User, permessi del proprietario), g (Group, permessi per il gruppo proprietario) o o (Others, permessi per "gli altri"). Se non viene specificata una categoria, il cambiamento si applica a tutte. Un segno + assegna un permesso, un segno - lo rimuove. Per finire, i permessi vanno indicati da una o più lettere r (Read), w (Write) o x (eXecute).
Le opzioni principali sono molto simili a quelle dei comandi chown o chgrp:
-R Cambia i permessi in modo ricorsivo.
-v Modalità prolissa, riporta le operazioni effettuate per ciascun file.
-c Simile all'opzione -v, ma mostra solo i file per cui sono stati modificati i permessi.
Esempi:
chmod -R o-w /shared/docs Rimuove ricorsivamente il permesso di scrittura per gli "altri" su tutti i file e le sotto-directory della directory /shared/docs/.
chmod -R og-w,o-x private/ Rimuove ricorsivamente il permesso di scrittura per il gruppo e gli "altri" sull'intera directory private/, e rimuove il permesso di esecuzione per gli altri.
chmod -c 644 miscellaneous/file* modifica i permessi per tutti i file nella directory miscellaneous/ il cui nome comincia per file, impostandoli come rw-r--r-- (ovvero permesso di lettura per tutti e permesso di scrittura solo per il proprietario) visualizzando solo i file i cui permessi sono stati effettivamente modificati.
Indietro | Partenza | Avanti |
Introduzione alla linea di comando | Risali | I caratteri speciali (meta-caratteri) e le espressioni regolari nella shell |