I gruppi su Linux
Sul sistema operativo Linux ogni utente è associato a uno o più gruppi.
Cos'è un gruppo? E' un insieme di utenti che condividono gli stessi permessi su una serie di risorse, file e directory.
Anche le risorse ( file e directory ) sono associate a gruppi.
Come usare i gruppi su Linux
A cosa servono i gruppi?
I gruppi permettono di escludere gli utenti non autorizzati dall'utilizzo di una risorsa ( es. programma, file, directory ).
Quindi, saper usare i gruppi sul sistema operativo è molto importante per la sicurezza.
Un esempio pratico
Devo autorizzare la modifica del file "stipendi" soltanto agli utenti che appartengono al gruppo "rsu" ( risorse umane ).
Vado sul file "stipendi" e gli assegno il gruppo "rsu".
chgrp rsu stipendi
Poi modifico i permessi del file "stipendi", autorizzando la scrittura (w) soltanto al gruppo (g).
chmod 775 stipendi
Ora il file è modificabile soltanto dagli utenti che appartengono al gruppo "rsu".
Tutti gli altri utenti, invece, possono soltanto leggerlo (r) o eseguirlo (x).
Cosa significa 775? Vuol dire assegna i permessi di lettura, scrittura ed esecuzione all'utente proprietario del file e al gruppo del file, mentre autorizza soltanto alla lettura e all'esecuzione tutti gli altri. Per comprendere meglio il funzionamento del comando chdmod e della modalità numerica 775, rimando alla lettura dei miei appunti sui permessi numerici nel sistema Linux / Unix.
Come vedere i gruppi associati all'utente
Un utente può essere associato a molti gruppi.
Per vedere la lista dei gruppi di un utente utilizzo il comando groups dalla linea comandi:
groups [username]
Il sistema operativo restituisce in output l'elenco dei gruppi a cui è associato l'utente.
group1 group2 group3 ...
Il primo gruppo della lista è il gruppo principale dell'utente
Nota. Per vedere i gruppi a cui è associato il mio utente, basta digitare soltanto groups senza indicare lo username.
Il gruppo principale
Un utente può essere associato a molti gruppi.
Per convenzione, il primo gruppo della lista è il gruppo principale dell'utente.
A cosa serve il gruppo principale?
Quando un utente crea un file o una directory, questi ereditano automaticamente il gruppo principale dell'utente.
Non ereditano, invece, gli altri gruppi dell'utente.
Un esempio pratico
Il mio utente è “andrea” ed è associato al gruppo principale “ced” e al gruppo “adm”.
Entro sulla linea comandi e creo la directory “prova”.
mkdir prova
Poi visualizzo il contenuto della cartella in cui mi trovo con il comando ls -l
ls -l
Il sistema operativo visualizza l'elenco dei file e delle directory.
Tra queste c'è anche la directory "prova" che ho appena creato.
La directory è associata allo username “andrea” e al gruppo “ced”.
Questo vuol dire che gli altri utenti appartenenti al gruppo “ced” condividono gli stessi permessi di gruppo sulla cartella.
Nota. La directory non ha ereditato gli altri gruppi del mio utente. Ad esempio, non ha ereditato il gruppo "adm" perché non è il mio gruppo principale.