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.
La sintassi del comando chown (CHange OWNer) è la seguente:
chown [opzioni] <utente[.gruppo]> <file|directory> [file|directory...]
-R: modalità ricorsiva; per cambiare il proprietario di tutti i file e le directory presenti 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.
chown nobody /shared/book.tex: cambia il proprietario del file /shared/book.tex in nobody.
chown -Rc adamo.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 adamo e al gruppo music, elencando solo i file modificati dal comando.
Il comando chgrp (CHange GRouP) 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 (CHange MODe) ha una sintassi molto particolare. La sintassi generica è:
chmod [opzioni] <cambia 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 con delle cifre che seguono lo schema <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. I permessi rwxr-xr- -, ad esempio, corrispondono a 400+200+100 (diritti del proprietario, rwx) +40+10 (diritti del gruppo, r-x) +4 (diritti degli altri, r- -) = 754; in questo modo, i permessi vengono espressi in forma assoluta. Questo significa che 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; un'espressione, quindi, ha il seguente formato: [categoria]<+|-|=><permessi>.
La categoria può essere indicata da una o più lettere:
Se non viene specificata una categoria, il cambiamento si applica a tutte. Un segno + assegna un permesso, un segno - lo rimuove e un segno = lo assegna. Per finire, il permesso è uno o più dei seguenti:
Le opzioni principali sono molto simili a quelle dei comandi chown o chgrp:
chmod -R o-w /shared/docs: rimuove ricorsivamente il permesso di scrittura per gli altri su tutti i file e le sottodirectory 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.