Gestione utenti e gruppi
6
GNU/Linux è un sistema multiutente e, ad ogni livello di utilizzo, possiamo trovarci a dover interagire con utenti e gruppi. In questo articolo vedremo come gestirli.
Partiamo dall'inizio, esistono tre tipi di utenti:
- Utente root: Viene anche chiamato superutente, ha il completo e incondizionato controllo del sistema, può eseguire qualsiasi comando senza restrizioni. È di fatto l’amministratore del sistema. , in molte retribuzioni recenti l'utente root è disabilitato (senza password) e si preferisce l'approccio di sudo, cioè quello di "amministratore a tempo".
- Utenti di sistema: Sono utenti necessari per lo svolgimento di alcune operazioni di sistema, essendo privi di password non hanno facoltà di accesso. Alcuni esempi sono:
- www-data (server web)
- lp (sistema di stampa)
- Utenti normali: Gli utenti normali, come da dicitura, sono i classici utenti. Possono accedere e gestire i file di loro proprietà ed i file non di loro proprietà ma solo se membri del gruppo proprietario. Grazie a sudo è possibile trasformare temporaneamente un utente normale in amministratore.
Gruppi
Ogni utente è membro di uno o più gruppi. Come per gli utenti abbiamo gruppi normali (semplici raggruppamenti di utenti) e gruppi di sistema. Fra i gruppi di sistema più comuni spicca sicuramente sudo, i suoi membri sono autorizzati a diventare amministratori a tempo.
Comandi di gestione
Gli utenti ed i gruppi sono gestibili tramite alcuni comandi fondamentali:
- useradd
- usermod
- userdel
- groupadd
- groupmod
- groupdel
Gruppi
Creare un gruppo
Come è facile intuire per creare un gruppo dobbiamo utilizzare il comando groupadd che ha poche ma fondamentali opzioni (riporto solo le principali):
- -G forzare l’id del gruppo
- -o permette di utilizzare un id gruppo non univoco (sinceramente non so quali vantaggi può portare)
- -r per creare un gruppo di sistema
Tutti i parametri sono opzionali quindi nell’uso comune possiamo lanciare:
groupadd nome_gruppo
Modificare un gruppo
Il comando da utilizzare è groupmod. Le opzioni sono molteplici (anche qui riporto le principali):
- -G per modificare l’id del gruppo
- -n per rinominare il gruppo
Almeno una delle opzioni è obbligatoria quindi vediamo due esempi:
groupmod -n nuovo_nome vecchio_nome
groupmod -G nuovo_id nome_gruppo
Cancellare un gruppo
Relativamente ai gruppi resta solo il comando groupdel per il quale riporto una sola opzione:
- -f cancella il gruppo anche se è il gruppo principale di uno o più utenti
L’uso comune è:
groupdel nome_gruppo
Utenti
Creare un utente
Anche per gli utenti i nomi dei comandi sono esplicativi, creiamo usando useradd. Il comando ha numerose opzioni (nessuna obbligatoria):
- -d cartella principale dell’utente (il default è /home/nome_utente
- -e data di scadenza, è possibile creare utenti temporanei
- -f utente non attivo
- -g nome del gruppo principale (di default è nome_utente), se non esiste viene creato
- -G nomi dei gruppi addizionali
- -m crea l’home utente
- -M non creare la home utente
- -p password (visto che verrebbe passata in chiaro è preferibile assegnarla dopo utilizzando il comando
passwd nome_utente
- -r utente di sistema (senza password)
- -u forza id dell’utente (di default 1001, 1002, 1003, ecc)
Utilizzando semplicemente:
useradd nome_utente
la cartella /home/nome_utente diviene la cartella home dell’utente ma non viene creata quindi o la creiamo manualmente (attribuendo poi i permessi) o usiamo l’opzione -m.
Modificare un utente
Il comando è usermod e come per i gruppi almeno una delle opzioni è obbligatoria. Le opzioni sono le stesse di useradd, si aggiungono solo:
- -a aggiungi ad un gruppo senza sostituire i preesistenti (da usare assieme a -G)
- -l rinomina
- -m cambia di significato per usermod è muovi la home utente (usato insieme a -l)
Quindi se vogliamo aggiungere un utente ad un gruppo usiamo:
usermod -G nome_gruppo -a nome_utente
mentre possiamo usare
usermod -l vecchio_nome nuovo_nome -m -d /home/nuove_nome
Per rinominare l’utente cambiando anche la home directory, con -m spostiamo anche i dati
Cancellare un utente
In questo caso possiamo usare il comando userdel il quale ha due sole opzione degne di nota:
- -f forza cancellazione dei file
- -r cancella cartella home
Usato senza parametri cancella l’utente e il gruppo principale (se vuoto)