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

06/01 10h02 Utiliser la commande "su" (Linux)
21/09 11h21 Klik : Utiliser un paquet sans l'installer (Linux)
17/02 18h07 Utilisation d'un firewall (Sécurité)
17/02 15h24 Utiliser des styles visuels (Windows XP)
13/02 20h27 Applications pour entreprises (Linux)
10/02 19h31 Equivalences logicielles pour GNU/Linux (Logiciel libre)
29/01 13h38 Multiboot sur PC de type Packard Bell (Linux)
23/01 15h42 Se logguer à distance avec ssh (linux) (SSH)
23/01 14h52 Accéder à NTFS en écriture (Linux)
23/01 12h32 Installer Linux sans repartitionner (Linux)
Linux utilisateurs Plus d'astuces sur « Linux utilisateurs »

Discussions pertinentes trouvées dans le forum

05/05 10h51 linux utilisé cmd shell prog [C++/Linux] utilisé les cmd shell dans prog Développement 18/05 14h23->Char Snipeur6
01/10 12h47 s ram utilisée linux savoir RAM utilisée sous linux Linux/Unix 01/10 13h14->pascal19752
07/01 17h54 utilisation logiciel win linux Utilisation de logiciel pour Win sous LINUX ? Linux/Unix 08/01 14h10->Arno592
17/08 22h17 kdx solution utilisation linux [KDX] solution pour utilisation sous linux ? Linux/Unix 18/08 09h25->mamiemando1
26/05 13h06 linux config utiliser linux win Linux avec ma config & utiliser Linux et Win Windows 14/01 13h58->le druide22
17/01 18h26 utilité pare feu linux Utilité d'un pare-feu sous Linux ? Linux/Unix 12/05 20h45->tufs19
17/02 19h37 utiliser fichiers windows linux utiliser les fichiers Windows sous linux Linux/Unix 31/05 20h43->kheduch11
07/07 16h00  Qui êtes vous ? pourquoi utilisez vous Linux Etudes/Formation 21/07 16h31->Ovo lanthatus9
15/04 11h11 linux utilisateur [Linux] Création utilisateur Windows 15/04 13h46->kalamit8
10/07 10h34 troll utilise serveurs linux [Troll?]Microsoft utilise des serveurs Linux Windows 10/07 13h40->sebsauvage8
Discussion fermée Problème résolu Linux utilisateurs Plus de discussions sur « Linux utilisateurs »

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.