13.6 Modificare gli Account

C'è una varietà di comandi diversi disponibili nell'ambiente UNIX® per manipolare gli account. I comandi più comuni sono riassunti sotto, seguiti da esempi più dettagliati del loro uso.

Comando Riassunto
adduser(8) La linea di comando raccomandata per aggiungere utenti.
rmuser(8) La linea di comando raccomandata per rimuovere utenti.
chpass(1) Un tool flessibile per cambiare le informazioni del database degli utenti.
passwd(1) Un semplice tool da linea di comando per cambiare la password agli utenti.
pw(8) Un tool potente e flessibile per modificare tutti gli aspetti degli account utente.

13.6.1 adduser

adduser(8) è un semplice programma per aggiungere utenti. Crea nuove entries nei file di sistema passwd e group. Crea anche una home directory per il nuovo utente, copierà i file di configurazione di default (“dotfiles”) da /usr/share/skel e può opzionalmente spedire al nuovo utente una mail di benvenuto.

Esempio 13-1. Aggiungere un utente su FreeBSD

# adduser
Username: jru
Full name: J. Random User
Uid (Leave empty for default):
Login group [jru]:
Login group is jru. Invite jru into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jru]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username   : jru
Password   : ****
Full Name  : J. Random User
Uid        : 1001
Class      :
Groups     : jru wheel
Home       : /home/jru
Shell      : /usr/local/bin/zsh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no
Goodbye!
#

Nota: La password che digiti non è ripetuta via echo, nè sono mostrati degli asterischi. Accertati di non sbagliarla.

13.6.2 rmuser

Puoi usare rmuser(8) per rimuovere del tutto un utente dal sistema. rmuser(8) esegue i seguenti passi:

  1. Rimuove la entry dell'utente da crontab(1) (se ce ne sono).

  2. Rimuove ogni job at(1) che appartiene all'utente.

  3. Uccide tutti i processi che appartengono all'utente.

  4. Rimuove l'utente dal file delle password locale all'utente.

  5. Rimuove la directory home dell'utente (se è di proprietà dell'utente).

  6. Rimuove i file della mail in arrivo che appartengono all'utente da /var/mail,

  7. Rimuove tutti i file appartenenti all'utente da aree temporanee come /tmp.

  8. Alla fine, rimuove lo username da tutti i gruppi ai quali appartiene in /etc/group.

    Nota: Se un gruppo diventa vuoto ed il nome gruppo è uguale al nome utente, il gruppo è rimosso; questo è il complemento del gruppo unico per-utente creato da adduser(8).

rmuser(8) non può essere usato per rimuovere account di Superutenti, dato che questo è quasi sempre indicazione di distruzione di massa del sistema.

Di default, viene usato un modo interattivo: tenta di accertarsi che tu sappia cosa stai facendo.

Esempio 13-2. rmuser Rimozione di Account Interattiva

# rmuser jru
Matching password entry:
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/jru)? y
Updating password file, updating databases, done.
Updating group file: trusted (removing group jru -- personal group is empty) done.
Removing user's incoming mail file /var/mail/jru: done.
Removing files belonging to jru from /tmp: done.
Removing files belonging to jru from /var/tmp: done.
Removing files belonging to jru from /var/tmp/vi.recover: done.
#

13.6.3 chpass

chpass(1) cambia le informazioni del database degli utenti come password, shells ed informazioni personali.

Solo gli amministratori di sistema, come il Superutente, possono cambiare le informazioni degli altri utenti e le password con chpass(1).

Quando non si passano opzioni, ad eccezione dello username opzionale, chpass(1) mostra un editor che contiene le informazioni utente. Quando l'utente esce dall'editor, il database utenti è aggiornato con le nuove informazioni.

Nota: Se non sei il Superutente, ti sarà chiesta la password dopo che esci dall'editor.

Esempio 13-3. chpass interattivo da Superutente

#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:

L'utente normale può cambiare solo alcune di queste informazioni e solo per sé stesso.

Esempio 13-4. chpass interattivo da un Utente Normale

#Changing user database information for jru.
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:

Nota: chfn(1) e chsh(1) sono solo links a chpass(1), come ypchpass(1) e ypchfn(1) e ypchsh(1). Il supporto a NIS è automatico, in questo modo specificare il yp prima del comando non è necessario. Se questo ti confonde, non preoccuparti, NIS sarà trattato in Capitolo 27.

13.6.4 passwd

passwd(1) è il modo consueto per cambiare la tua password come utente, o la password di un altro utente come Superutente.

Nota: Per evitare cambiamenti accidentali o non autorizzati, la password originale deve essere digitata prima che una nuova password possa essere impostata.

Esempio 13-5. Cambiare la Tua Password

% passwd
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: done

Esempio 13-6. Cambiare la Password di un Altro Utente da Superutente

# passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: done

Nota: Come con chpass(1), yppasswd(1) è solo un link a passwd(1), così NIS funziona con entrambi i comandi.

13.6.5 pw

pw(8) è una utility da linea di comando per creare, rimuovere, modificare e mostrare utenti e gruppi. Funziona come un front end ai file di sistema degli utenti e dei gruppi. pw(8) ha un insieme di opzioni di linea di comando che lo rendono idoneo per essere usato in shell script, ma gli utenti novizi lo potrebbero trovare più complicato degli altri comandi presentati qua.

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.