Come utilizzare il comando chown su Linux

I file e le directory nei sistemi Linux appartengono tutti a qualcuno. Puoi cambiare la loro proprietà con il comando chown. Ti mostriamo come.

Ogni file appartiene a un utente e a un gruppo

Linux è un sistema multiutente. Il sistema operativo consente la definizione di più account utente e l’accesso al computer da parte di qualsiasi utente valido. Inoltre, più utenti possono utilizzare un singolo computer contemporaneamente.

Per mantenere un registro di quali file appartengono a quale utente e per applicare una certa sicurezza, Linux utilizza il concetto di proprietà. Ogni file appartiene a un proprietario, un utente, e a un gruppo.

Quando viene creato un file, il suo proprietario è l’utente che lo ha creato. Il gruppo a cui appartiene il file, il gruppo “proprietario”, è il gruppo corrente dell’utente. Utenti e gruppi hanno nomi e anche identità numeriche, chiamate identificatore utente (o univoco) (UID) e identificatore di gruppo (GID).

Quando crei un file, è di tua proprietà e appartiene al tuo gruppo attuale. Di solito, questo è il gruppo a cui hai effettuato l’accesso. Per impostazione predefinita, questo è un gruppo che condivide lo stesso nome del tuo nome utente ed è stato creato quando sei stato creato come utente nel sistema.

Puoi usare il comando chown per modificare i valori di proprietà in qualcos’altro. Puoi impostare un nuovo proprietario, un nuovo gruppo o un nuovo proprietario e un nuovo gruppo contemporaneamente. Il proprietario di un file può modificare la proprietà del gruppo, ma solo root può modificare la proprietà dell’utente perché ciò coinvolge un altro utente. Senza i privilegi di root, non è possibile fare in modo che un altro utente del sistema “adotti” involontariamente un file.

  Come comprimere le immagini in Linux come per magia con E-mage

Perché vorresti cambiare proprietà?

Ecco alcuni esempi di situazioni in cui potresti voler eseguire questa operazione:

Se trasferisci file tra diversi sistemi operativi Linux o Unix, dovrai cambiare l’utente e i proprietari del gruppo con il nuovo utente e i proprietari del gruppo dell’account con cui desideri utilizzare i file sul nuovo computer Linux.
Un utente può lasciare la tua organizzazione e tutti i suoi file saranno di responsabilità di un altro membro del personale. Dovrai cambiare il proprietario e il proprietario del gruppo con il membro del personale ora responsabile di quei file.
Puoi creare uno script che verrà utilizzato da un utente specifico.
Puoi creare un file o una directory registrati come root, ma vuoi che sia accessibile a un utente specifico.

Visualizzazione di gruppi, UID e GID

Per elenca i gruppi ti trovi, puoi usare il comando gruppi.

groups

gruppi in una finestra di terminale

Per ottenere un elenco dei gruppi, i loro ID numerici, e il tuo UID e GID, usa il comando id:

id

id in una finestra di terminale

È possibile utilizzare alcune opzioni con ID per perfezionare l’output.

-u: Elenca il tuo UID.
-g: Elenca il tuo GID effettivo (attuale).
-nu: elenca il tuo nome utente.
-ng: Elenca il nome del tuo gruppo corrente.

id -u
id -g
id -nu
id -ng

output del comando id in una finestra di terminale

Visualizzazione della proprietà di utenti e gruppi di un file

Per vedere i proprietari di un file o di una directory, usa l’opzione -l (elenco lungo) con ls.

ls -l
ls -l in una finestra di terminale

Possiamo vedere che il nome dave appare due volte nell’elenco. L’aspetto più a sinistra ci dice che il proprietario del file è un utente chiamato dave. Il dave più a destra ci dice che il file appartiene a un gruppo chiamato anche dave.

  Come installare SpeedCrunch su Linux

Per impostazione predefinita, quando viene creato un utente Linux, viene aggiunto a un gruppo privato denominato per il proprio nome utente. Sono l’unico membro di quel gruppo.

Questo file eseguibile è di proprietà dell’utente mary e il gruppo a cui appartiene il file è il gruppo privato di mary.

ls -l

ls -l in una finestra di terminale

Questo file è di proprietà dell’utente oscar, ma il gruppo a cui appartiene il file si chiama researchlab. Ciò significa che altri membri del gruppo researchlab possono accedere a questo file, in base ai permessi del file che sono stati impostati per i membri di quel gruppo.

ls -l in una finestra di terminale

Modifica della proprietà dell’utente

Analizziamo alcuni esempi. Questo comando cambierà la proprietà dell’utente del file while.c con l’utente mary.

sudo chown mary while.c

sudo chown mary while.c in una finestra di terminale

Possiamo usare ls per vedere le modifiche alle proprietà del file.

ls -l while.c

ls -l while.c in una finestra di terminale

È possibile utilizzare chown per modificare la proprietà di più file contemporaneamente.

sudo chown mary getval.c global.c goto.c

sudo chown mary getval.c global.c goto.c in una finestra di terminale

Ciò modifica la proprietà dell’utente di tutti e tre i file.

ls -l getval.c global.c goto.c

ls -l getval.c global.c goto.c in una finestra di terminale

È possibile utilizzare caratteri jolly per selezionare gruppi di file. Questo comando cambierà la proprietà dell’utente di tutti i file che iniziano con la lettera “c”.

sudo chown mary c*.*

sudo chown mary c *. * in una finestra di terminale

Tutti i file ora avranno mary come proprietario. Tieni presente che nessuna delle proprietà del gruppo è stata modificata.

ls -l mary c*.*

ls -l mary c *. * in una finestra di terminale

Cambiamo la proprietà di una directory. Passiamo semplicemente il nome della directory a chown invece del nome del file.

sudo chown mary ./archive/

sudo chown mary ./archive/ in una finestra di terminale

Per controllare le proprietà di proprietà della directory usiamo ls, ma usiamo anche l’opzione -d (directory). Questo elenca le proprietà della directory, non i file al suo interno.

ls -l -d ./archive/

ls -l -d ./archive/ in una finestra di terminale

Per cambiare la proprietà di tutti i file in una directory, puoi usare l’opzione -R (ricorsiva). Questa opzione cambierà la proprietà dell’utente di tutti i file all’interno della cartella di archivio.

sudo chown -R mary ./archive/

sudo chown -R mary ./archive/ in una finestra di terminale

Ora diamo un’occhiata ai file nella directory dell’archivio.

ls -l ./archive/

ls -l ./archive/ in una finestra di terminale

Come previsto, tutti i file ora appartengono a mary.

  Come giocare a Subnautica su Linux

Modifica della proprietà del gruppo

Esistono diversi modi per modificare la proprietà del gruppo.

Per modificare la proprietà del gruppo contemporaneamente alla modifica della proprietà dell’utente, passare il nome del nuovo proprietario e il nome del nuovo gruppo con i due punti “:” che li separano. Il gruppo deve già esistere.

sudo chown mary:researchlab charm.c

sudo chown mary: researchlab charm.c in una finestra di terminale

Il proprietario dell’utente e il gruppo a cui appartiene il file sono stati entrambi modificati.

ls -l charm.c

ls -l charm.c in una finestra di terminale

Un modo abbreviato per modificare la proprietà del gruppo nel gruppo corrente del nuovo proprietario, basta fornire i due punti e omettere il nome del gruppo.

sudo chown mary: caps.c

sudo chown mary: caps.c in una finestra di terminale

ls -l caps.c

ls -l caps.c in una finestra di terminale

Sia la proprietà dell’utente che la proprietà del gruppo sono state modificate in mary.

Per modificare solo la proprietà del gruppo, anteponi i due punti e ometti il ​​nome utente. Il proprietario dell’utente non verrà modificato.

sudo chown :researchlab at.c

sudo chown: researchlab at.c in una finestra di terminale

ls -l at.c

ls -l at.c in una finestra di terminale

La proprietà del gruppo è stata modificata, ma la proprietà dell’utente rimane la stessa.

Utilizzo di Chown con valori UID e GID

È possibile utilizzare i valori UID e GID numerici con il comando chown. Questo comando imposterà l’utente e la proprietà del gruppo su mary.

sudo chown 1001:1001 at.c

sudo chown 1001: 1001 at.c in una finestra di terminale

ls -l at.c

ls -l at.c in una finestra di terminale

Il possesso è nove decimi della legge

O almeno così dicono. Ma in Linux, la proprietà è una parte importante della sicurezza dei file, con i permessi sui file che ne forniscono il resto. Usa i comandi chown e chmod per proteggere l’accesso ai file sul tuo sistema.