Les comptes
Un compte (account) est une identité.
Chaque utilisateur d’un système Unix doit disposer d’un compte pour pouvoir ouvrir une session de travail.
Mais il existe aussi des comptes pour les services.
Par exemple, un serveur web tourne sous une identité qui lui est propre
(typiquement www, www-data ou apache, suivant les distributions).
De même, un serveur de messagerie tourne typiquement avec l’identité mail.
Par convention, les comptes de services possèdent des UID petits (inférieur à 1000, et même souvent inférieur à 100), alors que les comptes utilisateurs possèdent de grands UID.
1. Les attributs d’un compte
Chaque compte possède un identifiant (uid), un groupe principal et potentiellement des groupes secondaires.
$ id root $USER
uid=0(root) gid=0(root) groupes=0(root)
uid=1000(jaclin) gid=1000(jaclin) groupes=1000(jaclin),10(wheel)
La commande ci-dessus indique que le compte root possède l’uid 0,
que son groupe principal est root,
et qu’il n’a pas de groupe secondaire.
Le compte jaclin possède quant à lui l’uid 1000,
son groupe principal est jaclin,
et il a pour groupe secondaire wheel.
Chaque compte possède aussi un homedir et un shell.
La commande getent passwd permet de récupérer les attributs de compte :
$ getent passwd root $USER
root:x:0:0:Super User:/root:/bin/bash
jaclin:x:1000:1000:Jacquelin Charbonnel:/home/jaclin:/bin/bash
Chaque ligne renvoyée correspond à un compte, dont les champs spécifient ses attributs :
-
son nom
-
(obsolète) historiquement, ce champ contenait son mot passe chiffré
-
son uid
-
son gid
-
un commentaire libre
-
son homedir
-
son shell
Ces informations sont issues du fichier /etc/passwd.
Reste le mot de passe, que l’on récupère chiffré avec la commande getent shadow :
$ sudo getent shadow root $USER root:$y$j9T$.Dm3oT31$.jN6l5tD:20025:0:99999:7::: jaclin:$y$jy.Dm3osH1$.jfwl5tD:20025:0:99999:7:::
Chaque ligne renvoyée correspond à un compte, dont les champs spécifient des attributs privés :
-
le nom du compte
-
son mot de passe chiffré
-
divers paramètres, comme la date du dernier changement de mot de passe, le nombre de jours minimum et maximum de validité du mot de passe, la date d’expiration du compte, etc.
Ces informations sont issues du fichier /etc/shadow.
Les mots de passe se modifient avec la commande passwd.
2. Création d’un compte
La création d’un compte consiste à :
-
créer un homedir (avec le bon propriétaire, et des permissions conformes à la politique de sécurité)
-
ajouter une ligne dans
/etc/passwd -
recopier un profil standard dans le homedir (le profile standard est l’ensemble des fichiers de configuration initiaux déposés dans le homedir de l’utilisateur)
-
si le compte est un compte utilisateur, lui affecter un mot de passe (avec la commande
passwd).
Historiquement, ces opérations étaient réalisées manuellement.
Aujourd’hui, on crée, modifie et supprime un compte avec des commandes évoluées,
comme useradd, usermod et userdel.
- Résumé
-
-
les comptes sont définis dans le fichier
/etc/passwd -
la commande
passwdpermet de changer les mots de passe
-