Les fichiers de configuration.
/etc/passwd.
Le format de ce fichier est indiqué dans la page de manuel du fichier de configuration passwd (section 5) :
 $ man 5 passwd
 - nom de connexion de l’utilisateur (« login »)
 - un mot de passe chiffré optionnel
 - l’identifiant numérique de l’utilisateur (UID)
 - l’identifiant numérique du groupe de l’utilisateur (GID)
 - le nom complet de l’utilisateur (champ GECOS)
 - le répertoire personnel de l’utilisateur
 - l’interpréteur de commandes de l’utilisateur 
La majorité des comptes définis dans ce fichier sont des comptes administratifs ne servant uniquement à l'exécution de certaines applications (daemons). Ainsi, les processus fonctionnant avec ces comptes sont limités par les droits d'accés de ces derniers.
/etc/shadow.
Le format de ce fichier est indiqué dans la page de manuel du fichier de configuration shadow (section 5) :
 $ man 5 shadow
 - nom de connexion de l’utilisateur (« login »)
 - mot de passe chiffré
 - nombre de jours, comptés à partir du 1er janvier 1970, depuis le dernier changement de mot de passe
 - nombre de jours à attendre avant de pouvoir changer le mot de passe
 - nombre de jours après lesquels le mot de passe doit être changé
 - nombre de jours avant la fin de validité du mot de passe et pendant lesquels l’utilisateur est averti
 - nombre de jours après la fin de validité provoquant la
 désactivation du compte
 - nombre de jours, comptés à partir du 1er janvier 1970, depuis que le compte est désactivé
 - champ réservé
La commande chage permet de changer les informations relatives à l'expiration des mots de passe (man chage).
/etc/group.
Le format de ce fichier est indiqué dans la page de manuel du fichier de configuration group (section 5) :
 $ man 5 group
 - nom du groupe
 - mot de passe chiffré du groupe. Si ce champ est vide, aucun mot de passe n’est nécessaire
 - GID : identifiant numérique du groupe
 - tous les noms des membres du groupe, séparés par des virgules
/etc/gshadow.
Contient les informations cachées sur les groupes. Il contient des lignes avec les champs suivant 
séparés par des deux-points :
gpasswd.
La commande gpasswd administre le fichier /etc/group. Elle permet d' affecter un mot de passe à un groupe.
 # addgroup testgrp
 # Ajout du groupe "testgrp" (identifiant 1001)...
 # Terminé.
 # gpasswd testgrp
 # Changement du mot de passe pour le groupe test
 # Nouveau mot de passe : 'mdp'
 # Nouveau mot de passe (pour vérification) : 'mdp'
newgrp.
Newgrp change l´identifiant de groupe réel actuel à la valeur du groupe indiqué, ou au groupe
par défaut défini dans /etc/passwd si aucun nom de groupe n´est fourni. 
La commande groups permet de connaitre les groupes dont je fais partie :
 $ groups
 alex dialout cdrom floppy audio video plugdev netdev powerdev
On peut aussi obtenir la liste des groupes (et leurs GID) avec la commande id :
 $ id
 uid=1000(alex) gid=1000(grpalex) groupes=20(dialout),24(cdrom),25(floppy),29(audio),44(video),46(plugdev),106(netdev),109(powerdev),1000(grpalex)
Gérer les utilisateurs.
Ajouter un utilisateur.
La commande useradd permet d'ajouter des utilisateurs. Le fichier /etc/default/useradd contient les paramètres par défaut de la commande.
Invoqué sans option, cette commande crée l'utilisateur, mais le compte n'est pas activé. De plus, elle n'a pas crée le répertoire de travail de l'utilisateur.
 # useradd paul
 # grep paul /etc/passwd
 paul:x:1002:1002::/home/paul:/bin/sh
 # grep paul /etc/shadow
 paul:!:13823:0:99999:7:::
 # grep paul /etc/group
 paul:x:1002:
 # ls -al /home/paul
 ls: /home/paul: Aucun fichier ou répertoire de ce type
Sous Debian, on utilisera plutôt la commande adduser qui offre plus d'options (positionnement du mot de passe et du champ GECOS à la création du compte, et création du répertoire de travail).
 # adduser jacques
 Ajout de l'utilisateur « jacques »...
 Ajout du nouveau groupe « jacques » (1003)...
 Ajout du nouvel utilisateur « jacques » (1003) avec le groupe « jacques »...
 Création du répertoire personnel « /home/jacques »...
 Copie des fichiers depuis « /etc/skel »...
 Enter new UNIX password:
 Retype new UNIX password:
 passwd : le mot de passe a été mis à jour avec succès
 Modification des informations relatives à l'utilisateur jacques
 Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée
 Nom complet []: Jacques
 N° de bureau []: 123
 Téléphone professionnel []: 01 02 03 04 05
 Téléphone personnel []: 01 06 07 08 09
 Autre []: Chef de projet
 Ces informations sont-elles correctes ? [o/N] o
 # grep jacques /etc/passwd
 jacques:x:1003:1003:Jacques,123,01 02 03 04 05,01 06 07 08 09,Chef de projet:/home/jacques:/bin/bash
 # grep jacques /etc/shadow
 jacques:$1$OWMPkUFD$XnXmTUUJBGoLehbznyXUM/:13823:0:99999:7:::
 # grep jacques /etc/group
 jacques:x:1003:
 # ls -al /home/jacques
 total 20
 drwxr-xr-x 2 jacques jacques 4096 2007-11-06 11:05 .
 drwxr-xr-x 6 root root 4096 2007-11-06 11:05 ..
 -rw-r--r-- 1 jacques jacques 220 2007-11-06 11:05 .bash_logout
 -rw-r--r-- 1 jacques jacques 414 2007-11-06 11:05 .bash_profile
 -rw-r--r-- 1 jacques jacques 2227 2007-11-06 11:05 .bashrc
La commande adduser dispose du fichier de configuration /etc/adduser.conf qui permet de positionner les valeurs par défaut de la commande. La commande adduser offrira plus d'options que la commande useradd.
Le fichier /etc/adduser.conf permet de configurer les options par défaut de la commande adduser
Extrait de adduser.conf
 # La variable DSHELL spécifie le shell par défaut de la session sur le système.
 DSHELL=/bin/bash
 # La varible DHOME spécifie le répertoire par défaut contenant le dossier HOME de l'utilisateur.
 DHOME=/home
 # Si GROUPHOMES est à "yes", alors le dossier home sera créé avec le schéma suivant : /home/"nom du groupe"/" nom de l'utilisateur"
 GROUPHOMES=no
 # Si LETTERHOMES est à "yes", le dossier home sera créé dans un dossier ayant comme nom la première lettre du nom d'utilisateur
 # Par exemple : /home/u/user
 LETTERHOMES=no
 # La variable SKEL spécifie le dossier contenant le squelette du fichier utilisateur
 # En d'autre terme, elle indique le chemin du fichier d'exemple .profile qui sera copier dans le nouveau dossier home de l'utilisateur lors de sa création.
 SKEL=/etc/skel
 # FIRST_SYSTEM_[GU]ID to LAST_SYSTEM_[GU]ID inclusive is the range for UIDs for dynamically allocated administrative and system accounts/groups.
 # Please note that system software, such as the users allocated by the base-passwd package, may assume that UIDs less than 100 are unallocated.
 FIRST_SYSTEM_UID=100
 LAST_SYSTEM_UID=999
 # FIRST_[GU]ID to LAST_[GU]ID inclusive is the range of UIDs of dynamically allocated user accounts/groups.
 FIRST_UID=1000
 LAST_UID=29999
 # The USERGROUPS variable can be either "yes" or "no". If "yes" each created user will be given their own group to use as a default. If "no", each created user will be placed in the group whose gid is USERS_GID (see below).
 USERGROUPS=yes
La commande adduser permet aussi de rajouter facilement un utilisateur à un groupe donné :
Syntaxe : adduser "<le login>" "<le groupe>"
Exemple :
 # adduser pierre audio
Pour vérifier, on dispose de 3 possibilités :
- grep audio /etc/group
- id pierre
- groups pierre
Le répertoire /etc/skel (skeleton : squelette) contient les fichiers par défaut à copier dans les répertoires de travail des utilisateurs nouvellement créés.
Modifier un utilisateur.
La commande usermod permet de modifier les informations relatives à un utilisateur donné.
Dans certains cas, il sera plus simple de modifier directement les fichiers /etc/passwd et /etc/group plutôt que d'utiliser cette commande.
Supprimer un utilisateur.
La commande userdel permet de supprimer des utilisateurs.
Sous Debian, on utilisera plutot la commande deluser qui offre plus d'options (notamment la possibilité de créer une archive de tous les fichiers de l'utilisateur avant de supprimer son répertoire de travail).
De la même manière que adduser, la commande deluser dispose du fichier de configuration /etc/deluser.conf qui permet de spécifier son comportement par défaut.
Extrait de deluser.conf
 REMOVE_HOME = 0 
 REMOVE_ALL_FILES = 0
 # Backup files before removing them. This options has only an effect if REMOVE_HOME or REMOVE_ALL_FILES is set.
 BACKUP = 0
 BACKUP_TO = "."
 # delete a group even there are still users in this group
 ONLY_IF_EMPTY = 0
 # exclude these filesystem types when searching for files of a user to backup
 EXCLUDE_FSTYPES = "(proc|sysfs|usbfs|devpts|tmpfs)"
Gérer les groupes.
Ajouter un groupe.
La commande groupadd permet d'ajouter un groupe.
 # groupadd compta
Sous Debian, on dispose de la commande addgroup, qui est en réalité un lien vers la commande adduser.
 # which addgroup
 /usr/sbin/addgroup
 # ls -l /usr/sbin/addgroup
 lrwxrwxrwx 1 root root 7 2007-10-24 12:53 /usr/sbin/addgroup -> adduser
 # addgroup compta
 Ajout du groupe « compta » (identifiant 1004)...
 Terminé.
Modifier un groupe.
La commande groupmod permet de modifier les informations relatives à un groupe donné.
Pour ajouter un utilisateur à un groupe :
 usermod -g group_name user_name
Dans certains cas, il sera plus simple de modifier directement le fichier /etc/group plutôt que d'utiliser cette commande.
Supprimer un groupe.
La commande groupdel permet de supprimer des groupes.
Sous Debian, on dispose de la commande delgroup, qui est en réalité un lien vers la commande deluser.
 # which delgroup
 /usr/sbin/delgroup
 # ls -l /usr/sbin/delgroup
 lrwxrwxrwx 1 root root 7 2007-10-24 12:53 /usr/sbin/delgroup -> deluser
Modifier manuellement les fichiers /etc/passwd, /etc/shadow, /etc/group et /etc/gshadow.
Dans certains cas, il est plus simple d'éditer manuellement les fichiers de configuration /etc/passwd, /etc/shadow, /etc/group et /etc/gshadow plutôt que d'utiliser les commandes précédement évoquées.
Les commandes suivantes permettent de garantir qu'un seul root est en train de modifier un de ces fichiers : 
Pour plus d'information, se reporter aux pages de manuel (man vipw et man vigr).