title: Chown
text: # Chown
  
  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, 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 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
  
  ### Sintassi
  
  La sintassi generale di chown è la seguente:
  
  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
  
  Imposta l'utente alice come nuovo proprietario del file:
  
  Imposta l'utente carlo come nuovo proprietario del file /home/roberto/file e gli assegna il gruppo vendite:
  
  Compatibilità con il passato, separando il nome del proprietario dal nome del gruppo con un punto (.) anziché con due punti (:), sconsigliato
  
  ## La chiamata di sistema chown
  
  La chiamata di sistema chown è dichiarata nello header file unistd.h:
  
  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
  
  Il valore di ritorno è 0 in caso di successo. In caso di errore è -1, e la variabile errno indica l'errore specifico.
  
  