Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

Linux - Gestion des utilisateurs

Gestion des utilisateurs sous Linux Encyclopédie


Premier pas de l'administrateur

Lorsque diverses personnes ont accès à un système, il est nécessaire que l'administrateur système gère les utilisateurs. Pour ceci, les commandes usuelles et les fichiers à configurer doivent être connus.

Les fichiers importants à connaître sont :

  • le fichier /etc/passwd
  • le fichier /etc/group

Le fichier /etc/passwd

Le fichier /etc/passwd contient toutes les informations relatives aux utilisateurs (login, mots de passe, ...). Seul le superutilisateur (root) doit pouvoir le modifier. Il faut donc modifier les droits de ce fichier de façon à ce qu'il soit en lecture seule pour les autres utilisateurs.

Ce fichier possède un format spécial permettant de repérer chaque utilisateur, chacune de ses lignes possède le format suivant:

nom_du_compte : mot_de_passe : numero_utilisateur : numero_de_groupe
: commentaire : répertoire : programme_de_demarrage
Sept champs sont explicités séparés par le caractère ":" :
  • le nom du compte de l'utilisateur
  • le mot de passe de l'utilisateur (codé bien sûr)
  • l'entier qui identifie l'utilisateur pour le système d'exploitation (UID=User ID, identifiant utilisateur)
  • l'entier qui identifie le groupe de l'utilisateur (GID=Group ID, identifiant de groupe)
  • le commentaire dans lequel on peut retrouver des informations sur l'utilisateur ou simplement son nom réel
  • le répertoire de connexion qui est celui dans lequel il se trouve après s'être connecté au système
  • la commande est celle exécutée après connexion au système (c'est fréquemment un interpréteur de commandes)

Voici un exemple de fichier passwd :
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:daemon:/sbin:/bin/bash
news:x:9:13:News system:/etc/news:/bin/bash
uucp:x:10:14::/var/lib/uucp/taylor_config:/bin/bash
cquoi:x:500:100:Cool......:/home/cquoi:/bin/bash

Il est important de savoir que les mots de passe situés dans ce fichier sont chiffrés. Il est donc inutile de l'éditer et de remplacer le champ mot_de_passe en tapant directement le mot de passe, cela conduirait uniquement au blocage du compte.

Lorsqu'un utilisateur se connecte, le programme login compare le mot de passe tapé par l'utilisateur (après l'avoir chiffré) à celui qui est dans le fichier passwd. Si ils sont différents, la connexion ne peut être établie.

Pour interdire l'utilisation, il suffit de remplacer le mot de passe chiffré par une étoile : "*".

Les accès à un compte peuvent éventuellement être ouverts en laissant le champ mot_de_passe vide. Toute personne voulant se connecter avec ce compte pourra alors le faire.
Pour pouvoir modifier le mot de passe d'un compte grâce à la commande passwd, il faut être soit administrateur systême, soit propriétaire du compte (le système demandera alors à l'utilisateur d'entrer l'ancien mot de passe avant de lui demander d'enter 2 fois son nouveau mot de passe).

UID : identifiant (unique) de chaque compte utilisateur. Les nombres de 0 à 99 sont fréquemment réservés à des comptes propres à la machine. Les valeurs supérieures à 100 sont elles réservées aux comptes utilisateurs.

GID : identifiant de groupe. Le groupe par défaut (nommé group) porte le numéro 50. Cet identifiant est utilisé en relation avec les droits d'accès aux fichiers. Cette question ne vous préoccupera que si votre système comporte plus d'un seul groupe d'utilisateurs. (Il faudra alors se préoccuper du fichier /etc/group.

Il est possible à partir du Shell de modifier l'interpréteur de commandes. Pour ceci, il faut utiliser la commande chsh ou alors passwd -s. Linux cherche alors dans le fichier /etc/shells le programme que vous avez spécifié. Seules les commandes présentes dans ce fichier seront acceptées et remplaceront la valeur actuelle du champ programme_de_demarrage. Ces restrictions ne s'appliquent pas au compte du superutilisateur.
Assurez-vous que les droits d'accès du fichier /etc/shells sont les mêmes que pour le fichier /etc/passwd
Le superutilisateur ne se nomme pas obligatoirement root. Pour le changer, il suffit de remplacer le nom du compte root par celui désiré.
Un compte privilégié est un compte dont l'identifiant (UID, User ID) vaut zéro.

Le fichier /etc/group

Le fichier /etc/group contient la liste des utilisateurs appartenant aux différents groupes. En effet, lorsque de nombreux utilisateurs peuvent avoir accès au système, ceux-ci sont fréquemment rassemblés en différents groupes ayant chacun leurs propres droits d'accès aux fichiers et aux répertoires.

Il se compose de différents champs séparés par ":" :

nom_de_groupe : champ_special : numero_de_groupe : membre1, membre2

Le champ spécial est fréquemment vide.
Le numéro de groupe est le numéro qui fait le lien entre les fichiers /etc/group et /etc/passwd

Voici un exemple de fichier /etc/group :

root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:
tty:x:5:
disk:x:6:
lp:x:7:
wwwadmin:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:cyrus
news:x:13:news
  • Lorsque l'on utilise la commande ls avec l'option -l, le numéro de groupe est affiché avec le numéro de l'utilisateur à qui appartient le fichier (ou le répertoire). Ce numéro unique correspond à un nom de groupe unique (souvent 8 caractères max.).
  • Un même utilisateur peut apparaître dans plusieurs groupes. Lorsqu'il se connecte au système, il appartient au groupe spécifié dans le fichier /etc/passwd (le champ GID). Il peut en changer à l'aide de la commande newgrp. Des droits d'accès aux fichiers sont alors définis.
  • Les protections du fichier doivent empêcher sa modification par les utilisateurs non privilégiés.
  • Pour ajouter un groupe, l'administrateur peut modifier le fichier /etc/group à l'aide d'un éditeur de texte. Il peut également utiliser la commande addgroup ou groupadd (pas toujours présentes). Dans le premier cas, il aura uniquement la ou les lignes correspondant aux groupes, à ajouter. Par exemple, la ligne :
    admin : : 56 : ccm
  • Pour ajouter un utilisateur à un groupe, il suffit d'éditer le fichier /etc/group et de rajouter ce nom au bout de la ligne en séparant le nom des membres par une virgule.
  • Pour supprimer un groupe, il suffit d'éditer le fichier /etc/group et d'effacer la ligne correspondante. Mais attention, il ne faut pas oublier de changer dans le fichier /etc/passwd les numéros (GID) du groupe supprimé, si des utilisateurs y appartenaient. Il est également essentiel de chercher les fichiers et répertoires de ce groupe pour le changer (dans le cas contraire les fichiers et répertoires riquent d'être inaccessibles).

La personnalisation du shell

Le fichier /etc/profile permet de configurer le Shell. Il concerne tous les utilisateurs.

On y trouve tout d'abord les variables du Shell telles que OPENWINHOME, PATH, ...
Ensuite, le type de terminal et la variable TERM sont définis en conséquence.
Une partie est consacrée au prompt du Shell, enfin une dernière permet la définition des couleurs de la commande ls.

Au démarrage de Linux, il est agréable d'avoir le pavé numérique allumé, ce qui n'est pas le cas par défaut.
Il y a donc quelques lignes à rajouter au fichier /etc/profile qui sont:

INITTY=/dev/tty[1-7]
for tty in $INITTY;
do setleds -D +num < $tty
done


Lors de la connexion au Shell, la première chose qui apparaît est le prompt, celui-ci peut être configuré au gré de l'utilisateur.
Si l'administrateur veut avoir un prompt qui se nomme : "Bonjour#", il lui suffit alors d'éditer le fichier /etc/profile. Celui-ci contient une variable appelée PS1. Toutes les lignes concernant cette variable doivent alors être précédées d'un dièze: #. Il s'agit alors d'ajouter la ligne PS1='Bonjour#'.

Il ne reste plus qu'à sauvegarder et se relogger. On peut alors apercevoir quelques changements.
Astuce: laisser un blanc après le prompt pour une meilleure lisibilité.

Il est également possible d'utiliser des variables dans le prompt (pour afficher par exemple l'heure ou le nom de la machine...) :

\d pour ajouter la date (format anglais)
\t pour ajouter l'heure (HH:MM:SS)
\u pour ajouter le nom de l'utilisateur
\r pour un retour à la ligne
\w pour ajouter le chemin complet du répertoire courant
\W pour ajouter le répertoire courant
\h pour ajouter le nom de la machine

La couleur peut également être changée. Pour ceci, il faut utiliser la variable PS1 comme ceci:

PS1='\[\033[num_couleurm]prompt_voulu\033[0m]'

Le numéro de la couleur sera pris dans la liste suivante :

Noir 0;30
Rouge 0;31
Vert 0;32
Brun 0;33
Bleu 0;34
Violet 0;35
Cyan 0;36
Gris Clair 0;37
Gris 1;30
Rose 1;31
Vert Clair 1;32
Brun Clair 1;33
Bleu Clair 1;34
Violet Clair 1;35
Cyan Clair 1;36
Blanc 1;37

Voici un exemple qui indique l'heure suivie du nom de l'utilisateur en rouge :

PS1='\t \[\033[0;31m]\u\033[0m]'

Trucs & astuces pertinents trouvés dans la base de connaissances

23/09 17h18 Lire le synopsis d'un man (Unix)
08/09 03h22 Solaris et Open-Solaris (Unix)
21/06 10h35 Partager un scanner unix* en réseau (Bureautique)
Unix Plus d'astuces sur « Unix »

Discussions pertinentes trouvées dans le forum

11/02 00h15 modifier fichier texte commande unix Modifier un fichier texte commande unix Linux/Unix 11/02 09h43->jipicy8
08/02 17h04 unix [Unix] Probleme avec Linux/Unix 16/02 09h57->Trezeg6
08/09 10h04 unix déplacer fichier selon chaine contenu [Unix] déplacer fichier selon chaine contenu Linux/Unix 13/10 08h57->jon_chninkel21
07/12 12h58 printf unix [printf]C/unix Développement 09/01 12h46->ced18
29/09 14h39 changement adresse ip unix Changement d'adresse IP sous UNIX Linux/Unix 02/01 01h29->omarou14
14/07 16h50 shell unix Shell UNIX Linux/Unix 15/07 15h31->UNIX/VI/SHELL13
17/01 14h07 unix ftp unix [Unix] FTP sous Unix Linux/Unix 24/01 14h44->Trezeg12
03/08 10h57 shell unix date veille [shell/unix] date de la veille Linux/Unix 22/02 12h25->Vag11
12/07 11h07 install unix linux aide à l'install unix ou linux Linux/Unix 20/07 09h22->Kermitt319
04/08 17h54 shell unix date modif fichier [Shell UNIX] Date de modif d'un fichier Linux/Unix 23/10 13h54->Régis9
Discussion fermée Problème résolu Unix Plus de discussions sur « Unix »

Ce document intitulé « Linux - Gestion des utilisateurs » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.