# Le système d'exploitation GNU-Linux/Les utilisateurs et groupes

* Qu'est-ce qu'un système d'exploitation ?
* Unix et Linux
* Partitionnement du disque
* Installation
** Installer Debian via le réseau
* Utilisateur Unix, l'interface console
** Le login
** Variables d'environnement
** Commandes de base
** L'aide en ligne man
** L'éditeur de texte vi
** Les shells
** La complétion
** Les jokers
** Les répertoires importants
** Redirection des entrées/sorties
** Invoquer un programme en tâche de fond
** Propriétaires et droits d'accès
** Processus
** Locale
* Administration du système
** Configuration du réseau
** Les utilisateurs et groupes
** Le processus d'initialisation
** Les systèmes de fichiers
** Le système virtuel /proc
** Les périphériques /dev
** L'ordonnanceur de travaux cron
** Le backup : tar et gzip
** ghost avec partimage
** sauvegarde de fichiers avec rsync
** Les fichiers journaux syslog
** Installation de nouveaux logiciels
** Le noyau Linux et les modules
** Autres commandes utiles
** Installation RAID1 logiciel + LVM + XFS
** Scripts de surveillance
** Réseaux sans fil
* Administration des services réseaux
** L'outil d'administration Webmin
** telnet
** cURL
** wget
** Le serveur de noms BIND
** Le serveur de configuration réseau DHCP
** Le serveur de shell distant SSH
** Le partage de fichiers Samba
** Le partage de fichiers NFS
** Le serveur d'impression CUPS
** Le serveur de fichiers FTP
** Le serveur Web Apache
** Le serveur Web Nginx
** La base de données MySQL
** La base de données Memcached
** La base de données Redis
** Le serveur de mails Postfix
** Les annuaires LDAP
** La supervision Nagios
* Sécurisation d'un serveur Linux
** Installation d'un service en mode chroot
** Protection avec iptables
* Erreurs connues
* Médiagraphie
* Auteurs
* Qu'est-ce qu'un système d'exploitation ?
* Unix et Linux
* Partitionnement du disque
* Installation
** Installer Debian via le réseau
* Utilisateur Unix, l'interface console
** Le login
** Variables d'environnement
** Commandes de base
** L'aide en ligne man
** L'éditeur de texte vi
** Les shells
** La complétion
** Les jokers
** Les répertoires importants
** Redirection des entrées/sorties
** Invoquer un programme en tâche de fond
** Propriétaires et droits d'accès
** Processus
** Locale
* Administration du système
** Configuration du réseau
** Les utilisateurs et groupes
** Le processus d'initialisation
** Les systèmes de fichiers
** Le système virtuel /proc
** Les périphériques /dev
** L'ordonnanceur de travaux cron
** Le backup : tar et gzip
** ghost avec partimage
** sauvegarde de fichiers avec rsync
** Les fichiers journaux syslog
** Installation de nouveaux logiciels
** Le noyau Linux et les modules
** Autres commandes utiles
** Installation RAID1 logiciel + LVM + XFS
** Scripts de surveillance
** Réseaux sans fil
* Administration des services réseaux
** L'outil d'administration Webmin
** telnet
** cURL
** wget
** Le serveur de noms BIND
** Le serveur de configuration réseau DHCP
** Le serveur de shell distant SSH
** Le partage de fichiers Samba
** Le partage de fichiers NFS
** Le serveur d'impression CUPS
** Le serveur de fichiers FTP
** Le serveur Web Apache
** Le serveur Web Nginx
** La base de données MySQL
** La base de données Memcached
** La base de données Redis
** Le serveur de mails Postfix
** Les annuaires LDAP
** La supervision Nagios
* Sécurisation d'un serveur Linux
** Installation d'un service en mode chroot
** Protection avec iptables
* Erreurs connues
* Médiagraphie
* Auteurs
[ Modifier le sommaire ]

## Les fichiers de configuration
### /etc/passwd

* contient la liste des utilisateurs, un par ligne
* contient d'autres informations relatives aux utilisateurs, dont notamment les UID (User IDentifiant) et GID (Group IDentifiant)
* contenait autrefois les mots de passe chiffrés de chaque utilisateur, mais désormais ces mots de passe sont stockés dans le fichier /etc/shadow
Le format de ce fichier est indiqué dans la page de manuel du fichier de configuration passwd (section 5) :
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

* contient les mots de passe chiffrés
* ne peut être lu uniquement par le root ou les membres du groupe shadow
* contient des informations relatives à l'expiration des mots de passe
Le format de ce fichier est indiqué dans la page de manuel du fichier de configuration shadow (section 5) :
La commande chage permet de changer les informations relatives à l'expiration des mots de passe (man chage).

### /etc/group

* contient la liste des groupes, un par ligne
* pour chaque groupe, le numéro du groupe (GID)
* les membres du groupe
Le format de ce fichier est indiqué dans la page de manuel du fichier de configuration group (section 5) :

### /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 :
* nom du groupe
* mot de passe chiffré
* liste d' administrateur du groupe séparés par des virgules
* liste des membres du groupe séparés par des virgules

### gpasswd

La commande gpasswd administre le fichier /etc/group. Elle permet d' affecter un mot de passe à un groupe.

### 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 :
On peut aussi obtenir la liste des groupes (et leurs GID) avec la commande id :

### Conversion avec ou sans shadow

parler des commandes pwconv et grpconv

### Vérification de passwd et group

parler des commandes pwck et grpck

## 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.
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).
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.
Controler et compléter la description du fichier de configuration adduser.conf
Le fichier /etc/adduser.conf permet de configurer les options par défaut de la commande adduser
Extrait de adduser.conf
La commande adduser permet aussi de rajouter facilement un utilisateur à un groupe donné :
Syntaxe : adduser <le login> <le groupe>
Exemple :
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.
description du fichier deluser.conf
Extrait de deluser.conf

## Gérer les groupes
### Ajouter un groupe

La commande groupadd permet d'ajouter un groupe.
Sous Debian, on dispose de la commande addgroup, qui est en réalité un lien vers la commande adduser.

### Modifier un groupe

La commande groupmod permet de modifier les informations relatives à un groupe donné.
Pour ajouter un utilisateur à un groupe :
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.

### 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 :
* vipw : modification du fichier /etc/passwd
* vipw -s : modification du fichier /etc/shadow
* vigr : modification du fichier /etc/group
* vigr -s : modification du fichier /etc/gshadow
Pour plus d'information, se reporter aux pages de manuel (man vipw et man vigr).