OldGentooWiki:Gérer les utilisateurs et les groupes
De Gentoo-Quebec.
Cette page est actuellement en construction. SVP, veuillez ne pas toucher à son contenu tant et aussi longtemps que ce message apparaît en début de page.
Sommaire |
Mise en contexte
Les systèmes Unix (et par extension les « comme Unix » tel que Linux) ont été dès le départ conçus pour héberger des sessions utilisateur interactives et les permissions/restrictions d'accès entre utilisateurs ont été mises en place dès l'origine. Pour la petite histoire, la sécurité que nous connaissons tire ses origines de MULTICS, lui-même descendant d'un des premiers systèmes à temps partagés de l'Histoire : Compatible TimeSharing System ou CTSS. Bref, la sécurité d'un système Unix/« comme Unix » telle que nous la connaissons actuellement est issue d'un héritage de presque 5 décennies !
Un peu de théorie...
Identifiant utilisateur
Une même machine Unix / « comme Unix » pouvant héberger plusieurs utilisateurs il est nécessaire que le système isole non seulement les différentes tâches les unes par rapport aux autres mais également conserve une trace de qui fait quoi et qui utilise quoi. A noter qu'il n'y a pas « d'anonymat », tout processus lancé ou fichier créé possède un propriétaire au sens du système. Étant donné qu'il est plus simple pour une machine de gérer des nombres que des chaînes de caractères, tous les utilisateurs se voient assigner un numéro (numéro d'identifiant utilisateur) s'étendant inclusivement de 0 à 65534 (15 bits) : le numéro d'identifiant utilisateur (User ID encore abrégé en UID).
- Il n'existe pas de hiérarchie entre les valeurs numériques des UID (14 n'aura pas plus ou moins de privilèges que 21).
- L'UID 0 est correspond toujours au super-utilisateur (root). Tout processus ayant comme propriétaire l'utilisateur 0 possède les pleins pouvoirs.
La liste de tous les identifiants utilisateurs (comptes utilisateurs) connus du système peut provenir de diverses sources dont :
- Un annuaire LDAP
- Les pages jaunes (yellow pages) NIS
- Le fichier plat /etc/password :
La source utilisée par votre système est spécifiée dans le fichier /etc/nsswitch.conf qui est à la base configuré pour utiliser le fichier plat /etc/password qui est constitué d'une série d'enregisrements dont chacun comporte sept champs séparés par un deux-points comme illustré ci-dessous:
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh .... syslog:x:101:102::/home/syslog:/bin/false klog:x:102:103::/home/klog:/bin/false avahi-autoipd:x:103:110:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false saned:x:104:112::/home/saned:/bin/false messagebus:x:105:113::/var/run/dbus:/bin/false polkituser:x:106:114:PolicyKit,,,:/var/run/PolicyKit:/bin/false hplip:x:107:7:HPLIP system user,,,:/var/run/hplip:/bin/false avahi:x:108:115:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false haldaemon:x:109:116:Hardware abstraction layer,,,:/var/run/hald:/bin/false gdm:x:110:117:Gnome Display Manager:/var/lib/gdm:/bin/false: postfix:x:112:123::/var/spool/postfix:/bin/false kernoops:x:113:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false postgres:x:114:125:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash ... usager01:x:1000:1000:Une vraie personne avec 2 bras et 2 jambes :-):/home/usager01:/bin/bash usager02:x:1001:1000:Une autre vraie personne avec 2 bras et 2 jambes :-):/home/usager01:/bin/bash ... nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
- Nom du compte utilisateur
- Mot de passe chiffré de l'usager, si ce champ contient un simple x celà signifie que la machine utilise les shadow passwords (le mot de passe chiffré est alors contenu dans le fichier /etc/shadow qui est seulement lisible des processus ayant le niveau de privilège de l'administrateur système).
- Numéro identifiant utilisateur (UID)
- Numéro identifiant du groupe principal de l'usager (GID principal)
- Description de l'usager (en général le nom et prénom pour les personnes physiques)
- Chemin du répertoire personnel de l'utilisateur
- Shell à utiliser lors de l'ouverture de session (la plupart du temps il s'agira de BASH mais il est possible d'en spécifier un autre comme CSH ou PDKSH).
- Le shell utilisé doit figurer dans la liste des shells valides qui est elle contenue dans le fichier /etc/shells
- /etc/password doit être lisible par tous les utilisateurs du systèmes car certaines commandes comme ls ou top s'en servent pour afficher de manière lisible le nom du propriétaire d'un fichier ou d'un processus.


