Linux - Gestione degli utenti

Se state cominciando ad utilizzare Linux e volete fare i primi passi come amministratori del sistema, qui per voi una guida pratica per scoprire come muoversi su Linux.

Primo passo dell'amministratore

Quando diverse persone hanno accesso ad un sistema, è necessario che l'amministratore di sistema gestisca gli utenti. Per fare questo si devono conoscere i comandi usuali e i file da configurare. I file importanti da conoscere sono il file /etc/passwd e il file /etc/group.

Il file/etc/passwd

Il file /etc/passwd contiene tutte le informazioni relative agli utenti (login, password, ecc.). Solo il superutente (root) deve poterlo modificare. Bisogna quindi modificare i diritti di questo file in modo da renderlo in sola lettura per gli altri utenti. Questo file ha un formato speciale che permette di individuare ogni utente, e ogni linea è nel seguente formato:

account: password: numero_utente: numero_di_gruppo: commenti: cartella: programma_di_avvio

Sette campi sono esplicitamente separati dal carattere ":":

L'account dell'utente;

La password dell'utente (ovviamente codificata);

Il numero intero che identifica l'utente per il sistema operativo (UID= User ID);

Il numero intero che identifica il gruppo dell'utente (GID=Group ID);

Il commento in cui si possono trovare delle informazioni sull'utente o semplicemente il suo vero nome;

La cartella di connessione che è quella in cui si trova dopo essersi connesso al sistema;

Il comando è quello eseguito dopo la connessione al sistema (spesso un interprete di comandi).

Qui di seguito un esempio di file passwd:

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:daemon:/sbin:/bin/bash
news:x:9:13:News system:/etc/news:/bin/bash
uucp:x:10:14::/var/lib/uucp/taylor_config:/bin/bash
cquoi:x:500:100:Cool......:/home/cquoi:/bin/bash

È importante sapere che le password poste in questo file sono codificate. È quindi inutile scriverla e sostituire il campo password digitando direttamente la password, visto che questo porterà solo al blocco dell'account. Quando un utente si connette, il programma login paragona la password digitata dall'utente (dopo averla codificata) a quella che si trova nel file psswd. Se sono diverse, la connessione non può essere stabilita. Per vietare l'utilizzo, basta sostituire la password codificata con un asterisco: "*".

Gli accessi ad un account possono eventualmente essere aperti lasciando il campo password vuoto. Chiunque voglia connettersi con questo account potrà farlo. Per modificare la password di un account con il comando passwd, bisogna essere amministratore del sistema, oppure proprietari dell'account (il sistema richiederà allora all'utente di inserire la vecchia password prima di richiedere per due volte la nuova).

UID: ID (unico) per ogni utente. I numeri da 0 a 99 sono solitamente riservati a degli account propri del terminale. I valori superiori a 100 sono riservati agli account utenti.

GID: ID di gruppo. Il gruppo da default (detto group) ha il numero 50. Questo ID è usato in relazione ai diritti di accesso ai file. Questa questione vi riguarda solo se il vostro sistema comporta più di un solo gruppo di utenti. (bisognerà allora preoccuparsi del file /etc/group.

Per modificare l'interprete di comandi è possibile partire anche dallo shell. Per questo, bisogna usare il comando chsh oppure passwd -s. Linux cerca allora il programma che avete specificato nel file /etc/shells. Solo i comandi presenti in questo file saranno accettati e sostituiranno il valore attuale del campo programma_di_avvvio. Queste restrizioni si applicano solo all'account superutente. Assicuratevi che i diritti di accesso del file /etc/shells siano gli stessi per il file /etc/passwd

Il superutente non si nomina obbligatoriamente root . Per cambiarlo, basta sostituire il nome dell'account root con quello desiderato. Un account privilegiato è un account il cui ID (UID, User ID) vale 0.

Il file/etc/group

Il file /etc/group contiene la lista degli utenti appartenenti ai diversi gruppi. In effetti, quando numerosi utenti hanno accesso al sistema, essi sono spesso assemblati in diversi gruppi con ciascuno i propri diritti di accesso ai file e alle cartelle. Esso si compone di differenti campi separati da ":":

nome_di_gruppo: campo_speciale: numero_di_gruppo: membro1, membro2

il campo speciale è spesso vuoto. Il numero del gruppo è il numero che fa da collegamento tra i file /etc/group e /etc/passwd

Ecco un esempio di file /etc/group:

root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:
tty:x:5:
disk:x:6:
lp:x:7:
wwwadmin:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:cyrus
news:x:13:news

Quando si utilizza il comando ls con l'opzione -l, il numero del gruppo è visualizzato con il numero dell'utente al quale appartiene il file (o la cartella). Questo numero unico corrisponde ad un nome di gruppo unico (spesso massimo 8 caratteri).

Uno stesso utente può apparire in più gruppi. Quando si connette al sistema, appartiene al gruppo specificato nel file /etc/passwd (il campo GID). Esso può cambiarne con il comando newgrp. Si definiscono allora dei diritti d'accesso ai file.

Le protezioni del file devono impedire la sua modifica da parte di utenti non privilegiati.

Per aggiungere un gruppo, l'amministratore può modificare il file /etc/group attraverso un editore di testo. Esso può anche usare il comando addgroup o groupadd (non sempre presente). Nel primo caso, sarà da aggiungere solo la dove le linee corrispondono ai gruppi. Ad esempio, la linea:

admin : : 56 : ccm

Per aggiungere un utente ad un gruppo, basta scrivere il file /etc/group e aggiungere questo nome all'inizio della linea separando il nome dei membri con una virgola.

Per eliminare un gruppo, basta scrivere il file /etc/group e cancellare la linea corrispondente. Ma attenzione, non bisogna dimenticare di cambiare nel file /etc/passwd i numeri (GID) del gruppo eliminato, se vi appartengono degli utenti. È inoltre essenziale cercare i file e le cartelle di questo gruppo per cambiarlo (in caso contrario i file e le cartelle rischiano di essere inaccessibili).

La personalizzazione dello shell

Il file /etc/profile permette di configurare lo shell. Riguarda tutti gli utenti. Si trovano innanzitutto le variabili dello shello come OPENWINHOME, PATH. Poi, si definiscono di conseguenza il tipo di terminel e la variabile TERM. Una parte è consacrata al prompt dello shell, infine un'ultima permette la definizione dei colori del comando ls.

All'avvio di Linux, è piacevole avere il tastierino numerico acceso, cosa che non avviene per default. Vi sono alcune linee da aggiungere al file /etc/profile che sono:

INITTY=/dev/tty[1-7]
for tty in $INITTY;
do setleds -D +num < $tty
done

Alla connessione allo shell, la prima cosa che appare è il prompt, che può essere configurato secondo il gusto dell'utente. Se l'amministratore vuole avere un prompt nominato: "Buongiorno#", gli basterà allora scrivere il file /etc/profile. Questo contiene una variabile detta PS1. Tutte le linee riguardanti questa variabile devono quindi essere precedute da un diesis: #. Si tratta allora di aggiungere la linea PS1='Buongiorno#'.

A questo punto non resta che salvare e rientrare. I cambiamenti saranno stati cosi realizzati. Astuzia: lasciare uno spazio dopo il prompt per una migliore lettura. È inoltre possibile usare delle variabili nel prompt (per visualizzare ad esempio l'ora o il nome del terminale, ecc.):

\d per aggiungere la data (formato inglese)
\t per aggiungere l'ora (HH:MM:SS)
\u per aggiungere il nome dell'utente
\r per un ritorno a capo
\w per aggiungere il percorso completo della cartella corrente
\W per aggiungere la cartella corrente
\h per aggiungere il nome del terminale

Anche il colore può essere cambiato. Per questo, bisogna utilizzare la variabile PS1 in questo modo: PS1='\[\033[num_colorem]prompt_voluto\033[0m]'

Il numero del colore sarà preso dalla lista seguente:

Nero 0;30
Rosso 0;31
Verde 0;32
Marrone 0;33
Blu 0;34
Viola 0;35
Cyan 0;36
Grigio chiaro 0;37
Grigio 1;30
Rosa 1;31
Verde chiaro 1;32
Marrone chiaro 1;33
Blu chiaro 1;34
Viola chiaro 1;35
Cyan chiaro 1;36
Bianco 1;37

Ecco un esempio che indica l'ora seguita dal nome dell'utente in rosso: PS1='\t \[\033[0;31m]\u\033[0m].

Foto: © Pixabay.

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Il documento intitolato « Linux - Gestione degli utenti » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.