prof. Nunzio Brugaletta

atapSO

EnneBi – Computer Science
AvantiIndietroInizio




Creare account per utenti

Per accreditare un utente all'uso del sistema, si deve creare, con i diritti di root, un account per l'utente:

$ sudo adduser alfa 
[sudo] password for tux: 
Aggiunta dell'utente «alfa» ... 
Aggiunta del nuovo gruppo «alfa» (1002) ... 
Aggiunta del nuovo utente «alfa» (1002) con gruppo «alfa» ... 
Creazione della directory home «/home/alfa» ... 
Copia dei file da «/etc/skel» ... 
Inserire nuova password UNIX: 
Reinserire la nuova password UNIX: 
passwd: password aggiornata correttamente 
Modifica delle informazioni relative all'utente alfa 
Inserire il nuovo valore o premere INVIO per quello predefinito 
        Nome completo []: utente di prova 
        Stanza n° []: 
        Numero telefonico di lavoro []: 
        Numero telefonico di casa []: 
        Altro []: 
L'informazione è corretta? [S/n] 

in questo modo viene generato l'account per l'utente con user-id alfa. L'output del comando esplicita alcune opzioni relative all'utente creato fra cui: user-id (1002), home personale (/home/alfa) a cominciare dalla quale directory l'utente creerà la propria organizzazione di files (il proprio file system) come riterrà più opportuno. L'inserimento, due volte per sicurezza, della password e, se si vuole, di informazioni aggiuntive e la conferma finale, terminano il processo di creazione dell'account dell'utente.

La password dell'utente può essere modificata in qualsiasi momento:

$ sudo passwd alfa 
Inserire nuova password UNIX: 
Reinserire la nuova password UNIX: 
passwd: password aggiornata correttamente 

o soltanto il comando passwd se l'utente vuole cambiare la propria password. Dopo aver specificato, nel comando, l'identificativo dell'utente, il sistema domanda la nuova password. La digitazione della password, al solito per motivi di sicurezza, viene richiesta due volte e, inoltre, non viene fornito eco nello schermo. È opportuno precisare che per modificare la password di qualsiasi utente sono necessari i diritti di root. Il singolo utente può modificare solamente la propria password.

Le opzioni di default per la creazione degli utenti sono contenute nel file /etc/adduser.conf:

# /etc/adduser.conf: `adduser' configuration.

# The DSHELL variable specifies the default login shell on your
# system.
DSHELL=/bin/bash

# The DHOME variable specifies the directory containing users' home
# directories.
DHOME=/home
...
# FIRST_UID to LAST_UID inclusive is the range of UIDs of dynamically
# allocated user accounts.
FIRST_UID=1000
LAST_UID=29999

Nel frammento riportato si notano: la shell da assegnare per default, la directory dove innestare le home degli utenti, gli identificativi utente validi. I parametri di default possono essere sovrascritti specificando delle opzioni nella riga del comando adduser. Per un elenco completo delle opzioni previste si consulti la pagina man del comando (comando man adduser).

Sempre in /etc/adduser.conf è settata la directory in cui root mette i file che si vuole siano copiati nella home di ogni nuovo utente:

# The SKEL variable specifies the directory containing "skeletal" user
# files; in other words, files such as a sample .profile that will be
# copied to the new user's home directory when it is created.
SKEL=/etc/skel

Nei sistemi Linux (tipicamente quelli non derivati Debian) dove non esiste adduser è possibile utilizzare il comando useradd e, in tal caso le opzioni di default sono contenute in /etc/default/useradd:

Dal punto di vista del sistema, creare l'account di un utente significa, intanto, aggiungere per l'utente un entry (una riga nuova dedicata alle informazioni sull'utente) in /etc/passwd:

$ less /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
...
alfa:x:1002:1002:utente di prova,,,:/home/alfa:/bin/bash

Ogni utente accreditato ha un entry in /etc/passwd formato da diversi campi, separati dal carattere :, ognuno riportante una informazione sull'utente stesso. Il primo campo è lo user-id. Il secondo campo (il posto della password) contiene una x per indicare che viene adottato un sistema di cifratura della password. Le password crittografate sono registrate in un ulteriore file. I due numeri successivi rappresentano l'UID (User ID) e il GID (Group ID), numeri identificativi dell'utente e del gruppo principale cui l'utente appartiene. Il successivo campo contiene i dati personali dell'utente inseriti in fase di creazione dell'utente così come trattato in precedenza. Gli ultimi due campi indicano la home dell'utente e la shell assegnata all'utente.

In etc/passwd si ritrovano alcuni utenti generati dal sistema, per esempio l'utente root che ha numero utente e gruppo 0.

Le password degli utenti, in formato crittografato, sono conservate in /etc/shadow. Il file, anche in lettura e per motivi di sicurezza, è accessibile solo con permessi di root:

$ sudo less /etc/shadow
root:$1$?J0mhU6?$1/LKjqXYnd5waU63MGYwq1:12115:0:99999:7:::
bin:*:13991:0:99999:7:::
daemon:*:13991:0:99999:7:::
...
alfa:$1$jUZyGhyh$XKh95REsZis/BHmnrsmBN.:13102:0:99999:7:::

per alcuni utenti, il secondo campo contiene il carattere *: sono gli utenti che non hanno una password.

Quando deve accedere al sistema, l'utente inserisce i dati della propria login, ovvero user-id e password. Il sistema controlla se c'è un entry in /etc/passwd per l'utente con quella user-id e, inoltre, se applicando l'algoritmo di cifratura alla password inserita, si ottiene la stessa informazione contenuta nell'entry dell'utente in /etc/shadow. Se le informazioni digitate coincidono con quelle riportate nei due file citati, viene avviata la shell specificata nell'entry dell'utente in /etc/passwd e l'utente si ritrova nella sua home (anche questa specificata in /etc/passwd).




AvantiIndietro - Inizio

http://ennebi.solira.org

ennebi@solira.org