Quand un utilisateur se connecte, il fournit un nom de connexion (login name) et un mot de passe (password). Si la connexion réussit, un shell est lancé et l'utilisateur se retrouve dans son répertoire de travail (working directory) qui est initialement son répertoire de connexion (login directory). Ces informations sont placées dans les fichiers /etc/passwd et /etc/group.
2.1. /etc/passwd
Les utilisateurs sont définis au sein du fichier /etc/passwd. En voici sa structure :
user:passwd:UID:GID:commentaire:homedir:commande
| Champs | Contenu |
|---|---|
| user | nom de connexion (login) de cet utilisateur |
| passwd | mot de passe crypté. S'il est remplacé par une *, ou un x, son contenu est placée dans /etc/shadow. S'il est absent il n'y a pas de mot de passe. Si ! : compte verrouillé. |
| UID | User Identification, numéro d'identification de l'utilisateur. L'utilisateur root à l'UID 0, les numéros inférieurs à 100 sont des utilisateurs spéciaux. Généralement un Unix peut gérer plus de 60000 UID. Si l'affectation est généralement séquentielle, elle peut aussi être arbitraire. Plusieurs logins peuvent être associés à un seul UID. Dans ce cas en fait il n'existe qu'un seul utilisateur. |
| GID | Group Identification, numéro du groupe d'appartenance de l'utilisateur. Les groupes supplémentaires sont définis dans /etc/group |
| Commentaire | Zone libre, contenant généralement le nom et le prénom. Il faut éviter d'y placer de caractères spéciaux et accentués. |
| homedir | Répertoire de connexion, ou home directory / login directory. Si l'utilisateur est toto, le répertoire est généralement /home/toto |
| commande | Commande à exécuter lors de la connexion de l'utilisateur. C'est généralement le shell (/bin/sh, /bin/ksh, ...) mais aussi n'importe quelle autre commande. |
2.2. /etc/group
Les groupes sont définis au sein du fichier /etc/group. Voici sa structure :
group:passwd:GID:liste_utilisateurs
| Champs | Contenu |
|---|---|
| group | nom du groupe |
| passwd | mot de passe pour un utilisateur désirant changer de groupe sans en faire partie. Peu utilisé. (commande newgrp) |
| GID | Group Identification, numéro d'identification du groupe. |
| liste | liste des utilisateurs du groupe. Pour utilisation avec la commande newgrp. |
2.3. Commandes
La commande passwd permet de changer le mot de passe, etdispose de plusieurs options.
- passwd nom_user : changement du mot de passe de l'utilisateur donné
- passwd -d nom_user : supprime le mot de passe
- passwd -l nom_user : verrouille le compte
- passwd -f nom_user : force le changement de mot de passe à la prochaine connexion
Les autres commandes sont :
- useradd :ajout d'un utilisateur (adduser parfois sous Linux)
- usermod : modification d'un compte utilisateur
- userdel : supprime l'utilisateur (deluser parfois sous Linux)
- groupadd : ajout d'un groupe
- groupmod : modification d'un groupe
- groupdel : supprime un groupe
- pwck : vérification de la cohérence de /etc/passwd
- grpck : vérification de la cohérence de /etc/group
- finger : informations sur un utilisateur
- su : se connecter à un compte
- id : connaître son identité
- chsh (Linux) : changer de shell
On se reportera au manuel en ligne pour les options qui ne sont pas compliquées.
Sous Linux, la syntaxe de useradd est la suivante :
useradd [-c comment] [-d homedir] [-g initial_group] [-G group2,group3,...] [-m] [-s shell] [-u UID] [-o] [-r] [-e YYYY-MM-DD] [-f inactive_days]- -c : saisie du commentaire. Un commentaire détaillé peut être inséré avec la commande chfn.
- -d : le répertoire personnel
- -g : le groupe de base
- -G : groupes supplémentaires pour utilisation avec la commande newgrp
- -m : recopie du /etc/skel dans le répertoire personnel.
- -s : le shell
- -u : choix d'un UID spécifique > 99
- -o : l'UID n'est pas unique
- -r : UID privilégié système <= 99
- -e : date d'expiration du login
- -f : délai avant verrouillage si mot de passe non changé
- -p : mot de passe déjà crypté avec crypt
On crée un utilisateur le plus simplement avec
useradd -m useruseradd -c "login de test" -d /home/logtest -s /bin/bash -g users -u 123-m logtest
La commande usermod modifie ces valeurs (mêmes paramètres) mais permet aussi de verrouiller un compte :
- -l login : modification du login
- -L : lock password (verrouillage)
- -U : unlock password (déverouillage
La commande userdel supprime le compte, avec son répertoire personnel si -r.
userdel -r logtestLa commande chsh modifie le shell de login.
- -s : spécifie le nouveau shell
- -l : donne la liste
La commande groupadd crée un groupe :
groupadd [-g GID] [-o] [-r] [-p password] group- -g : précise le GID > 99
- -o : le GID n'est pas unique
- -r : GID système <= 99
- -p password déjà crypté
La commande groupdel supprime le groupe.
groupdel grptestLa commande groupmod modifie le groupe, -n renomme le groupe.
On peut changer de groupe (groupe secondaire) avec la commande newgrp :
newgrp [-] groupe [-c commande]