I file e le directory nei sistemi Linux appartengono tutti a qualcuno. Puoi cambiare la loro proprietà con il comando chown. Ti mostriamo come.
Sommario:
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.
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
Per ottenere un elenco dei gruppi, i loro ID numerici, e il tuo UID e GID, usa il comando id:
id
È 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
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
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.
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
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.
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
Possiamo usare ls per vedere le modifiche alle proprietà del file.
ls -l while.c
È possibile utilizzare chown per modificare la proprietà di più file contemporaneamente.
sudo chown mary getval.c global.c goto.c
Ciò modifica la proprietà dell’utente di tutti e tre i file.
ls -l getval.c global.c goto.c
È 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*.*
Tutti i file ora avranno mary come proprietario. Tieni presente che nessuna delle proprietà del gruppo è stata modificata.
ls -l mary c*.*
Cambiamo la proprietà di una directory. Passiamo semplicemente il nome della directory a chown invece del nome del file.
sudo chown mary ./archive/
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/
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/
Ora diamo un’occhiata ai file nella directory dell’archivio.
ls -l ./archive/
Come previsto, tutti i file ora appartengono a mary.
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
Il proprietario dell’utente e il gruppo a cui appartiene il file sono stati entrambi modificati.
ls -l charm.c
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
ls -l caps.c
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
ls -l at.c
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
ls -l at.c
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.