13.6. Modifier des comptes

Il existe une variété de différentes commandes disponibles dans l'environnement UNIX® pour manipuler les comptes utilisateur. Les commandes les plus communes sont récapitulées ci-dessous, suivis par des exemples détaillés de leur utilisation.

Commande Résumé
adduser(8) L'application en ligne de commande recommandée pour ajouter de nouveaux utilisateurs.
rmuser(8) L'application en ligne de commande recommandée pour supprimer des utilisateurs.
chpass(1) Un outil flexible pour modifier les informations de la base de données utilisateur.
passwd(1) L'outil simple en ligne de commande pour changer les mots de passe utilisateur.
pw(8) Un puissant et flexible outil pour modifier tous les aspects des comptes utilisateurs.

13.6.1. adduser

adduser(8) est un programme simple pour ajouter de nouveaux utilisateurs. Il crée les entrées dans les fichiers système passwd et group. Il crée également le répertoire utilisateur pour le nouvel utilisateur, y copie les fichiers de configuration par défaut (``dotfiles'') à partir de /usr/share/skel, et peut éventuellement envoyer à l'utilisateur un courrier électronique de bienvenue.

Dans FreeBSD 5.0, adduser(8) a été converti d'une procédure d'origine en Perl en une procédure d'interpréteur de commandes sous la forme d'un programme exécutant pw(8), aussi l'utilisation de adduser(8) est légèrement différente entre FreeBSD 4.X et FreeBSD 5.X.

Pour créer le fichier de configuration initial, utilisez adduser -s -config_create. [1] Ensuite, nous configurons les valeurs par défaut pour adduser(8), et créons notre premier compte utilisateur, puisque l'utilisation du compte root pour un usage ordinaire est une mauvaise idée.

Exemple 13-1. Configurer adduser et ajouter un utilisateur sous FreeBSD 4.X

# adduser -v
Use option ``-silent'' if you don't want to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Enter your default shell: csh date no sh tcsh zsh [sh]: zsh
Your default shell is: zsh -> /usr/local/bin/zsh
Enter your default HOME partition: [/home]:
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
Send message from file: /etc/adduser.message no
[/etc/adduser.message]: no
Do not send message
Use passwords (y/n) [y]: y

Write your changes to /etc/adduser.conf? (y/n) [n]: y

Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username [a-z0-9_-]: jru
Enter full name []: J. Random User
Enter shell csh date no sh tcsh zsh [zsh]:
Enter home directory (full path) [/home/jru]:
Uid [1001]:
Enter login class: default []:
Login group jru [jru]:
Login group is ``jru''. Invite jru into other groups: guest no
[no]: wheel
Enter password []:
Enter password again []:

Name:     jru
Password: ****
Fullname: J. Random User
Uid:      1001
Gid:      1001 (jru)
Class:
Groups:   jru wheel
HOME:     /home/jru
Shell:    /usr/local/bin/zsh
OK? (y/n) [y]: y
Added user ``jru''
Copy files from /usr/share/skel to /home/jru
Add another user? (y/n) [y]: n
Goodbye!
#

En résumé, nous avons modifié l'interpréteur de commandes par défaut pour zsh (un autre interpréteur de commandes trouvé dans le catalogue des logiciels portés), et désactivé l'envoi d'un courrier électronique de bienvenue à la création d'un compte. Nous avons ensuite enregistré cette configuration, créé le compte jru, et fait en sorte que jru appartienne au groupe wheel (de sorte qu'il puisse assurer le rôle de root avec la commande su(1)).

Note : Le mot de passe que vous tapez n'apparaît pas à l'écran, et il n'y a pas non plus d'astérisques affichés. Assurez-vous de ne pas vous tromper dans le mot de passe.

Note : Vous pouvez désormais utiliser adduser(8) sans arguments, et vous n'aurez pas besoin de modifier les valeurs par défaut. Si le programme vous demandait de le faire, quittez-le et essayez l'option -s.

Exemple 13-2. Ajouter un utilisateur sous FreeBSD 5.X

# 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!
#

13.6.2. rmuser

Vous pouvez utiliser rmuser(8) pour supprimer complètement un utilisateur du système. rmuser(8) effectue les opérations suivantes:

  1. Supprime les entrées appartenant à l'utilisateur de la crontab(1) (s'il y en a).

  2. Supprime les tâches at(1) appartenant à l'utilisateur.

  3. Tue tous les processus appartenant à l'utilisateur.

  4. Supprime l'utilisateur du fichier de mots de passe local.

  5. Supprime le répertoire l'utilisateur (s'il lui appartient).

  6. Supprime les courriers électroniques en attente pour l'utilisateur dans /var/mail.

  7. Supprime tous les fichiers temporaires appartenant à l'utilisateur des zones de stockages temporaires comme /tmp.

  8. Et enfin, supprime l'utilisateur de tous les groupes auxquels il appartient dans /etc/group.

    Note : Si un groupe est vide de ce fait et que le nom du groupe est le même que celui de l'utilisateur, le groupe est supprimé; c'est la réciproque de la création par adduser(8) d'un groupe propre pour chaque utilisateur.



rmuser(8) ne peut pas être employé pour supprimer des comptes super-utilisateur, car cela entraînerait presque toujours des destructions massives.

Par défaut, la commande travaille en mode interactif, pour garantir que vous soyez sûr de ce que vous faites.

Exemple 13-3. Suppression interactive de compte avec rmuser

# 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) modifie les informations de la base de données des utilisateurs comme les mots de passe, les interpréteurs de commandes, et les informations personnelles.

Seuls les administrateurs système, comme le super-utilisateur, peuvent modifier les informations concernant les autres utilisateurs et les mots de passe à l'aide de chpass(1).

Utilisé sans options, en dehors du nom facultatif de l'utilisateur, chpass(1) ouvre un éditeur affichant les informations de l'utilisateur. Quand l'utilisateur quitte l'éditeur, la base de données utilisateur est mise à jour avec les nouvelles informations.

Note : Sous os; 5.X, on vous demandera votre mot de passe en quittant l'éditeur si vous n'êtes pas le super-utilisateur.

Exemple 13-4. chpass interactif par le super-utilisateur

#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:

Un utilisateur ordinaire ne peut modifier qu'une partie de ces informations, et seulement celles qui le concernent.

Exemple 13-5. chpass interactif par un utilisateur ordinaire

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

Note : chfn(1) et chsh(1) sont juste des liens vers chpass(1), comme le sont ypchpass(1), ypchfn(1), et ypchsh(1). NIS est supporté automatiquement, aussi spécifier yp avant la commande n'est pas nécessaire. Si cela vous semble confus, ne vous inquiétez pas, NIS sera abordé dans le chapitre Chapitre 23.

13.6.4. passwd

passwd(1) est la méthode habituelle pour modifier son mot de passe, ou celui d'un autre utilisateur si vous êtes le super-utilisateur.

Note : Pour prévenir des modifications accidentelles ou non autorisées, le mot de passe original doit être entré avant de pouvoir fixer un nouveau mot de passe.

Exemple 13-6. Modifier votre mot de passe

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

Exemple 13-7. Modifier le mot de passe d'un autre utilisateur en tant que super-utilisateur

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

Note : Comme pour chpass(1), yppasswd(1) est juste un lien vers passwd(1), donc NIS fonctionnera avec l'une des deux commandes.

13.6.5. pw

pw(8) est un utilitaire en ligne de commande pour créer, supprimer, modifier, et lister utilisateurs et groupes. Il fonctionne comme une interface aux fichiers d'utilisateurs et de groupe. pw(8) possède un ensemble puissant d'options qui le rende adapté à une utilisation dans des procédures, mais les nouveaux utilisateurs pourront le trouver plus compliqué que les autres commandes présentées ici.

Notes

[1]

L'option -s rend adduser(8) silencieux par défaut. Nous utiliserons -v plus tard quand nous voudrons modifier les valeurs par défaut.

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:14