chown (abbreviazione dalla lingua inglese di change owner, cambia proprietario) è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1], che modifica il proprietario e/o il gruppo assegnato di uno o più file e directory.
chown è anche il nome di una chiamata di sistema definita dallo standard POSIX[2] che appunto modifica il proprietario ed il gruppo assegnato di file e directory. Di fatto il comando chown opera invocando l'omonima chiamata di sistema.
In alcuni sistemi (solitamente di derivazione BSD, ma anche Linux) solo il superuser (root) può modificare il proprietario di un file o directory, mentre in altri sistemi (tipicamente derivanti da UNIX System V) essa può essere effettuata anche dal proprietario corrente del file.
Il comando chown
[modifica | modifica wikitesto]Sintassi
[modifica | modifica wikitesto]La sintassi generale di chown è la seguente:
chown [opzioni] [--] utente[:gruppo] file1 [file2 …]
Il parametro utente indica il nome del nuovo proprietario del file. Il parametro facoltativo gruppo indica il nuovo gruppo da assegnare al file. I parametri file specificano i nomi dei file e/o directory da modificare.
Il doppio trattino -- (facoltativo) indica che i parametri successivi non sono da considerarsi opzioni.
Tra le opzioni principali vi sono:
- -h
- In caso di collegamenti simbolici, se il sistema lo prevede, modifica il proprietario ed il gruppo del collegamento simbolico invece che quelli della sua destinazione.
- -R
- Applica le modifiche ricorsivamente alle directory specificate ed ai file e subdirectory in esse contenute.
Esempi
[modifica | modifica wikitesto]Imposta l'utente alice come nuovo proprietario del file:
chown -R alice /home/roberto/file
Imposta l'utente carlo come nuovo proprietario del file /home/roberto/file e gli assegna il gruppo vendite:
chown carlo:vendite /home/roberto/file
Compatibilità con il passato, separando il nome del proprietario dal nome del gruppo con un punto (.) anziché con due punti (:), sconsigliato
chown carlo.vendite /home/roberto/file
La chiamata di sistema chown
[modifica | modifica wikitesto]La chiamata di sistema chown è dichiarata nello header file unistd.h:
#include <unistd.h>
int chown(const char *path, uid_t owner, gid_t group);
I tipi uid_t e gid_t sono tipi opachi (solitamente tipi numerici interi) che rappresentano rispettivamente uno UID e un GID.
Il parametro path indica il nome del file o directory di cui cambiare il proprietario e il gruppo.
I parametri owner e group indicano rispettivamente lo UID ed il GID del nuovo proprietario e del nuovo gruppo.
Valore di ritorno
[modifica | modifica wikitesto]Il valore di ritorno è 0 in caso di successo. In caso di errore è -1, e la variabile errno indica l'errore specifico.
Note
[modifica | modifica wikitesto]- ^ (EN) chown (utilities), in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato il 27-05-2008.
- ^ (EN) chown (functions), in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato il 30-05-2008.
Voci correlate
[modifica | modifica wikitesto]- chgrp – Cambia il gruppo assegnato a file e directory.
- chmod – Modifica i permessi di file e/o directory.
- umask – Suggerisce permessi da negare.
Collegamenti esterni
[modifica | modifica wikitesto]Comando chown
[modifica | modifica wikitesto]- (EN) chown: Change file owner and group, in GNU Coreutils manual. URL consultato il 27-05-2007.