Comando chown Linux

comando chown

Su sistemi operativi simili a Unix, il comando chown modifica la proprietà di file e directory in un filesystem.

Questo documento descrive la versione GNU / Linux di chown.

Che cos'è il file "proprietà"?

Linux è progettato per supportare un gran numero di utenti. Per questo motivo, deve tenere traccia di chi è autorizzato ad accedere a un file e come possono accedervi. Queste regole di accesso sono chiamate autorizzazioni.

Esistono tre tipi principali di autorizzazioni per i file:

  • Autorizzazioni utente Queste autorizzazioni si applicano a un singolo utente con accesso speciale al file. Questo utente si chiama proprietario.
  • Autorizzazioni di gruppo. Questi si applicano a un singolo gruppo di utenti che hanno accesso al file. Questo gruppo è il gruppo proprietario.
  • Altre autorizzazioni. Questi si applicano a tutti gli altri utenti del sistema. Questi utenti sono conosciuti come altri o nel mondo.

Quando viene creato un file, il proprietario è l'utente che lo ha creato e il gruppo proprietario è il gruppo corrente dell'utente.

chown può cambiare questi valori in qualcos'altro.

Sintassi

chown [-c | --changes] [-v | --verbose] [-f | --silent | --quiet] [--dereference] [-h | --no-dereference] [--preserve-root ] [--from = currentowner: currentgroup] [--no-preserv-root] [-R | --recursive] [--preserve-root] [-H] [-L] [-P] {new-owner | --reference = file ref-file} ...
chown --help
chown --version

Specifica del nuovo proprietario

La nuova proprietà del file è specificata dall'argomento new-owner, che assume questa forma generale:

[gruppo di utenti]]

In particolare, ci sono cinque modi per formattare il nuovo proprietario:

Descrizione del nuovo proprietario
Utente Il nome dell'utente a cui appartiene il file. In questa forma, i due punti (":") e il gruppo vengono omessi. Il gruppo proprietario non viene modificato.
gruppo di utenti L'utente e il gruppo a cui appartiene il file, separati da due punti, senza spazi in mezzo.
:gruppo Il gruppo che possiede il file. In questo modulo, l'utente viene omesso e il gruppo deve essere preceduto da due punti.
utente: Se il gruppo viene omesso, ma i due punti seguono l'utente, il proprietario viene modificato in utente e il gruppo proprietario viene modificato nel gruppo di accesso dell'utente.
: È possibile specificare i due punti senza utente o gruppo, ma la proprietà non verrà modificata. Questo modulo non provoca errori, ma non modifica nulla.

Note sull'uso

  • l'utente e il gruppo possono essere specificati per nome o per numero.
  • Solo il root può cambiare il proprietario di un file. Il proprietario non può trasferire la proprietà, a meno che il proprietario non sia root o non usi sudo per eseguire il comando.
  • Il gruppo proprietario di un file può essere modificato dal proprietario del file, se il proprietario appartiene a quel gruppo. Il gruppo proprietario di un file può essere modificato, da root, in qualsiasi gruppo. I membri del gruppo proprietario diversi dal proprietario non possono modificare il gruppo proprietario del file.
  • Il gruppo proprietario può anche essere modificato utilizzando il comando chgrp. chgrp e chown usano la stessa chiamata di sistema e sono funzionalmente identici.
  • Alcune operazioni sui file vari possono essere eseguite solo dal proprietario o dalla radice. Ad esempio, solo il proprietario o il root possono cambiare manualmente "atime" o "mtime" di un file (tempo di accesso o tempo di modifica) usando il comando touch.
  • A causa di queste restrizioni, vorrai quasi sempre eseguire chown come root o con sudo.

Opzioni

Descrizione dell'opzione
-c, – modifiche Simile alla modalità –verbose, ma visualizza solo le informazioni sui file che sono stati effettivamente modificati. Per esempio:

ha cambiato la proprietà di 'dir / dir1 / file1' da speranza: neil a speranza: speranza
-v, – verbose Visualizza informazioni dettagliate per ogni file elaborato. Per esempio:

ha cambiato la proprietà di 'dir / dir1 / file1' dalla speranza: neil alla speranza: la proprietà della speranza di 'dir / dir1' è stata mantenuta come speranza: speranza
-f, – silent, – quiet Modalità silenziosa. Non visualizzare l'output.
–dereference Dereference tutti i collegamenti simbolici. Se il file è un collegamento simbolico, modificare il proprietario del file di riferimento, non il collegamento simbolico stesso. Questo è il comportamento predefinito.
-h, – no-dereference Non dedurre mai collegamenti simbolici. Se il file è un collegamento simbolico, modificare il proprietario del collegamento simbolico anziché il file di riferimento.
–from = currentowner: currentgroup Modificare il proprietario o il gruppo di ciascun file solo se il proprietario o il gruppo corrente corrispondono al proprietario attuale e / o al gruppo corrente. Entrambi possono essere omessi, nel qual caso non è richiesta una corrispondenza per l'altro attributo.
–no-preserve-radice Non trattare / (la directory principale) in alcun modo speciale. Questo è il comportamento predefinito. Se l'opzione –preserve-root è stata precedentemente specificata nel comando, questa opzione la annullerà.
–reference = ref file Utilizzare il proprietario e il gruppo di file ref-file, anziché specificare la proprietà con il nuovo proprietario.
-R, – recursive Operare su file e directory in modo ricorsivo. Immettere ciascuna directory corrispondente e operare su tutto il suo contenuto.

Opzioni

Le seguenti opzioni modificano il modo in cui viene attraversata una gerarchia quando viene specificata l'opzione -R o –recursive.

Descrizione dell'opzione
–preserve-radice Non operare mai in modo ricorsivo sulla directory principale /. Se –recursive non è specificato, questa opzione non ha alcun effetto.
-H Se un file specificato nella riga di comando è un collegamento simbolico a una directory, attraversarlo e operare anche su quei file e directory.
-L Attraversa tutti i collegamenti simbolici a una directory.
-P Non attraversare alcun collegamento simbolico; operare sui collegamenti simbolici stessi. Questo è il comportamento predefinito.

Se viene specificato più di -H, -L o -P, ha effetto solo l'opzione finale.

Opzioni

Queste opzioni visualizzano informazioni sul programma e non possono essere utilizzate con altre opzioni o argomenti.

Descrizione dell'opzione
–Aiuto Visualizza un breve messaggio di aiuto ed esce.
–versione Visualizza le informazioni sulla versione ed esce.

Stato di uscita

chown esce con uno stato di 0 per avere successo. Qualsiasi altro numero indica un'operazione non riuscita.

Perché cambiare la proprietà di un file?

È necessario utilizzare chown quando si desidera che le autorizzazioni utente o gruppo di un file vengano applicate a un utente o gruppo diverso.

Scenari ipotetici

Ecco alcuni esempi di quando potresti usare chown:

  • Si crea un file, myfile.txt, usando sudo o mentre si è effettuato l'accesso come root, quindi il file è di proprietà di root. Tuttavia, si intende che il file venga utilizzato dal proprio account utente normale, myuser. Utilizzare chown per modificare il proprietario:
sudo chown myuser myfile.txt
  • Possiedi myfile.txt, ma vuoi darlo a un altro utente sul sistema chiamato notme. Vuoi anche cambiare il gruppo proprietario nel gruppo di quell'utente, non mygroup. Usa chown per cambiare il proprietario e il gruppo:
sudo chown notme: notmygroup myfile.txt
  • Hai appena trasferito un'intera directory di file, altri file, da un altro computer. Tutti i file e le directory sono di proprietà del tuo nome utente sull'altro sistema e desideri che l'utente e il gruppo attuali li possiedano tutti. Cambia la proprietà della directory e tutti i suoi contenuti in modo ricorsivo, con l'opzione -R:
sudo chown -R myuser: altri file mygroup

Il comando sopra cambierà la proprietà di ogni file, sottodirectory e contenuto della sottodirectory negli altri file.

Gruppi in Linux

In Linux, un utente può essere un membro di più gruppi, ma ha solo un "gruppo corrente". Il gruppo corrente dell'utente è l'identità del gruppo dell'utente o GID.

Quando l'utente crea un nuovo file, la proprietà del file viene impostata sull'UID (identità dell'utente) e sul GID (identità del gruppo) dell'utente. Quindi, quando l'utente carla inizia a scrivere un nuovo documento, il file è di proprietà di carla e anche del suo gruppo attuale. Può cambiare la proprietà del gruppo del file con chown, ma solo root può usare chown per cambiare il proprietario in qualcun altro.

Inoltre, ogni utente ha un gruppo di accesso configurabile, che può essere uno qualsiasi dei gruppi di utenti. Quindi quando carla accede, il suo gruppo di accesso è il suo gruppo attuale. Il gruppo di login può essere modificato con il comando usermod, usando l'opzione -g.

sudo usermod -g newlogingroup carla

Un utente può cambiare il gruppo corrente con il comando newgrp. La modifica avviene in una subshell e persiste fino alla chiusura della subshell. Anche se carla cambia il suo gruppo attuale con newgrp, verrà ripristinato al suo gruppo di accesso al successivo accesso.

Puoi controllare il tuo gruppo corrente usando il comando id con l'opzione -g:

id -g
1001

Questo è il tuo GID numerico (il numero del tuo gruppo corrente). Per vedere il nome, specifica l'opzione -n:

id -ng
speranza

Per visualizzare tutte le appartenenze al gruppo, utilizzare la G maiuscola:

id -nG
spero sudo neil libvirtd vboxusers gruppo di utenti

Per impostazione predefinita, ogni utente Linux ha un gruppo privato, con quell'utente come unico membro. Quindi, quando l'account utente jeff viene creato con il comando adduser, viene creato anche un gruppo chiamato jeff. Il gruppo jeff è il gruppo di login predefinito di jeff e ha un solo membro (jeff).

Gruppi in altri sistemi operativi

Altri sistemi operativi usano chown, ma i loro gruppi possono funzionare in modo diverso.

In macOS X e BSD, ad esempio, gli utenti non hanno gruppi privati. Invece, tutti gli utenti regolari appartengono a un gruppo generale chiamato utenti.

In questi sistemi operativi, le opzioni e le funzionalità di chown possono essere simili, ma diverse. Se stai usando chown su un sistema operativo non Linux, assicurati di eseguire man chown per scoprire quali sono le differenze.

Esempi

Visualizzazione della proprietà

Prima di usare chown, potresti voler controllare l'attuale proprietà di un file. Puoi visualizzare la proprietà di un file, le autorizzazioni e altre informazioni importanti con il comando ls, usando l'opzione -l:

ls -l myscript.sh
-rwxrw-r-- 1 hope hopeusers 12 nov 5 13:14 myscript.sh

Nell'output vengono visualizzati diversi campi di informazioni elencati, inclusi i permessi e la proprietà del file. All'inizio potrebbe non avere senso, quindi descriviamolo in dettaglio.

Ecco cosa significano le informazioni:

Posizione del campo dati Descrizione
Campo 1, carattere 1 Tipo di file: d per una directory, l (L minuscola) per un collegamento simbolico o – (un trattino) per un file normale.
rwx Campo 1, caratteri 2-4 Autorizzazioni utente Il proprietario può leggere ("r"), scrivere in ("w") ed eseguire ("x") questo file.
rw Campo 1, caratteri 5-7 Autorizzazioni di gruppo. Il gruppo proprietario può leggere e scrivere su questo file, ma non può eseguirlo come comando.
r– Campo 1, caratteri 8-10 Altre autorizzazioni, note anche come autorizzazioni mondiali. A qualsiasi altro utente sul sistema è consentito solo leggere il file.
1 Campo 2 Numero di collegamenti simbolici a questo file. Se non ci sono collegamenti simbolici al file, questo numero è 1, perché il nome del file originale è incluso in questo conteggio. Se ci fosse un collegamento simbolico al file, questo numero sarebbe 2 o 3 per due collegamenti simbolici, ecc.
speranza Campo 3 Nome del proprietario Questo è il nome dell'utente proprietario del file. Quando questo utente tenta di accedere al file, l'accesso è limitato in base alle autorizzazioni dell'utente.
hopeusers Campo 4 Nome del gruppo proprietario. Questo è il gruppo di utenti che possiede il file. Quando un utente membro di questo gruppo tenta di accedere al file, l'accesso viene limitato in base alle autorizzazioni del gruppo.
12 Campo 5 Dimensione. Questo file contiene 12 byte di dati.
novembre Campo 6 Mtime (mese). Nome abbreviato del mese in cui i contenuti del file sono stati modificati l'ultima volta. Questo file è stato modificato l'ultima volta nel mese di novembre.
5 Campo 7 Mtime (giorno del mese). Questo file è stato modificato l'ultima volta il quinto giorno di novembre.
13: 14 Campo 8 Mtime (tempo o anno). Questo file è stato modificato l'ultima volta alle 13:14 (1:34) il 5 novembre di quest'anno. Se fosse stato modificato oltre un anno fa, questo campo elencherebbe invece l'anno, ad esempio il 2015.
myscript.sh Campo 9 Nome del file. Il nome del file.

Quindi i campi importanti qui sono 1, 3 e 4. Ci dicono che la speranza dell'utente può leggere, scrivere o eseguire i contenuti del file e che i membri del gruppo che gli utenti possono leggere o scrivere su di esso.

Cambiare proprietà

sudo chown hope file.txt

Cambia il proprietario di file.txt nella speranza dell'utente.

sudo chown hope file1 file2 file3

Cambia il proprietario di file1, file2 e file3 in speranza dell'utente.

file di speranza sudo chown *

Qui, l'asterisco ("*") è un carattere jolly che la shell espande in un elenco di ogni file il cui nome inizia con "file". Se la directory corrente contiene quattro file denominati file1, file2, file3 e file4, tutti i nomi di questi file vengono passati al comando chown e i loro proprietari cambiano in speranza dell'utente.

sudo chown spero myfiles

Cambia il proprietario del file o della directory myfile nella speranza dell'utente.

sudo chown -R spero myfiles

Cambia il proprietario dei myfile nella speranza dell'utente. Se myfiles è una directory, chown cercherà ricorsivamente (-R) quella directory e cambierà il proprietario di tutti i file, sottodirectory e contenuti della sottodirectory.

speranza sudo chown: amministratori file1 file2

Cambia i proprietari di file1 e file2 in speranza dell'utente e i gruppi proprietari in amministratori.

speranza sudo chown: file1

Cambia il proprietario di file1 in speranza dell'utente e il gruppo proprietario nel gruppo di accesso di speranza.

chown: othergroup file2

Modificare il gruppo proprietario di file2 per raggruppare othergroup. Si noti che questo è l'unico comando in questi esempi che può essere eseguito senza sudo.

Se l'utente spera esegue il comando precedente ma non appartiene al gruppo othergroup, il comando fallirà, a meno che non venga eseguito con sudo.

sudo chown 1000: 1001 file1

Modificare la proprietà di file1 per l'utente con UID numerico 1000 e il gruppo con GID numerico 1001.

chown sudo +1000: +1001 file1

Come il comando precedente. Se la speranza dell'utente ha UID 1000 e un altro utente è chiamato "1000" ma ha UID 1002, questo modulo di comando (con i segni "+") cambia inequivocabilmente il proprietario in speranza.

sudo chown -R speranza: documenti speranza

Modificare ricorsivamente la proprietà dei documenti della directory e tutti i file e le sottodirectory in essi contenuti, in base alla speranza dell'utente, alla speranza del gruppo.

sudo chown -Rc --reference / home / hope / inbox ~ / Documents / work

Modificare in modo ricorsivo la proprietà della directory ~ / Documents / work e tutti i file e le sottodirectory in essa contenuti, in modo che corrispondano alla proprietà del file o della directory / home / hope / inbox.

Nel comando sopra, ~ (una tilde) è un alias in bash che rappresenta la tua directory home. La tua directory home può anche essere rappresentata dalla variabile d'ambiente $ HOME, come in $ HOME / Documenti / lavoro.

Inoltre, se qualsiasi file cambia proprietà (opzione -c), le informazioni verranno stampate sullo standard output:

ha cambiato la proprietà di 'dir / file2' da neil: neil in speranza: la speranza ha cambiato la proprietà di 'dir / dir1 / file1' da susie: susie in speranza: la speranza ha cambiato la proprietà di 'dir / dir1' da judy: judy per sperare: speranza ha cambiato la proprietà di 'dir / dir2 / file2' da jeff: jeff in speranza: speranza ha cambiato la proprietà di 'dir / dir2' da carla: carla in speranza: speranza ha cambiato la proprietà di 'dir / file1' da steve: steve in speranza: speranza ha cambiato la proprietà di 'dir' dalla grazia: grazia alla speranza: speranza

Comandi correlati

chgrp – Cambia la proprietà del gruppo di file o directories.chmod – Cambia le autorizzazioni di file o directories.ls – Elenca il contenuto di una directory o directories.id – Visualizza ID gruppos.usermod – Modifica le impostazioni dell'account di un utente.

#goog-gt-tt {display:none !important;}.goog-te-banner-frame {display:none !important;}.goog-te-menu-value:hover {text-decoration:none !important;}body {top:0 !important;}#gtranslate_element {display:none!important;}

var gt_not_translated_list = [“chown –help”,”chown –version”,”–dereference”,”sudo chown myuser myfile.txt”,”sudo usermod -g newlogingroup carla”,”id -g”,”id -ng”,”id -nG”,”ls -l myscript.sh”,”hopeusers”,”myscript.sh”,”sudo chown hope file.txt”,”sudo chown hope file1 file2 file3″];
document.cookie = “googtrans=/en/it; domain=.balogs.xyz”;
document.cookie = “googtrans=/en/it”;
function GTranslateElementInit() {new google.translate.TranslateElement({pageLanguage: ‘en’,layout: google.translate.TranslateElement.InlineLayout.SIMPLE,autoDisplay: false,multilanguagePage: true}, ‘gtranslate_element’);}