Gestion des comptes et des permissions sous Linux

Linux contrôle l'accès aux ressources en se basant sur l'identité des utilisateurs. On distingue plusieurs types de comptes :

  • Compte superutilisateur : possède tous les droits
  • Compte utilisateur ordinaire : droits restreints
  • Compte de programme : pour les services système, non destiné à une connexion humaine

Chaque utilisateur appartient à un groupe principal (obligatoire, un seul) et peut appartenir à plusieurs groupes supplémentaires (facultatifs).

L'identifiant numérique est l'UID (User IDentify) pour l'utilisateur et le GID (Group IDentify) pour le groupe. Le système distingue les utilisateurs par leur UID : un UID de 0 correspond au superutilisateur (root).

Sous les distributions récentes (type CentOS 7), les plages UID sont les suivantes :

  • 0 : superutilisateur
  • 1000–60000 : utilisateurs ordinaires
  • 1–999 : comptes de programme

Fichier des comptes : /etc/passwd

Ce fichier contient les informations de base de chaque utilisateur. Chaque ligne correspond à un enregistrement :

root:x:0:0:root:/root:/bin/bash

Les champs sont :

  • Nom d'utilisateur
  • Placeholder du mot de passe (x)
  • UID
  • GID
  • Commentaire
  • Répertoire personnel
  • Shell de connexion

Pour plus de détails : man 5 passwd.

Fichier des mots de passe : /etc/shadow

Stocke les mots de passe chiffrés et les politiques de validité. Exemple :

dupont:$6$AbcDef123$...:19818:0:99999:7:::

Signification :

  • Nom d'utilisateur
  • Mot de passe chiffré (si commençant par ! ou *, compte verrouillé ; vide → connexion sans mot de passe)
  • Date du dernier changement (en jours depuis 1970-01-01)
  • Âge minimal avant changement (0 = aucun délai)
  • Âge maximal (99999 ≈ 273 ans)
  • Période d'avertissement avant expiration (7 jours)
  • Période de grâce après expiration (vide = aucune)
  • Date d'expiration du compte (vide = jamais)
  • Champ réservé

Voir man 5 shadow.

Commandes essentielles

useradd

Crée un nouvel utilisateur. Par défaut :

  • Crée un groupe principal du même nom
  • Crée un répertoire personnel dans /home

Options courantes :

  • -u UID : spécifier l'UID
  • -s SHELL : shell de connexion (ex. /sbin/nologin)
  • -M : ne pas créer de répertoire personnel
  • -d DOSSIER : définir un répertoire personnel différent
  • -e DATE : date d'expiration du compte (AAAA-MM-JJ)
  • -g GROUPE : groupe principal
  • -G GROUPES : groupes supplémentaires (séparés par des virgules)
  • -c COMMENTAIRE : ajouter un commentaire
  • -p MOTDEPASSE_CHIFFRE : mot de passe (doit être déjà chiffré)

Exemple :

useradd -u 1500 -s /sbin/nologin -M martin

passwd

Modifie le mot de passe. passwd nom_utilisateur ; sans argument, modifie celui de l'utilisateur courant.

  • -d : supprime le mot de passe
  • -l : verrouille le compte
  • -u : déverrouille (forcer avec -f si pas de mot de passe)
  • -S : affiche l'état du mot de passe
  • --stdin : permet de passer le mot de passe via l'entrée standard (ex. echo "secret" | passwd --stdin alice)

usermod

Modifie un compte existant. Options similaires à useradd :

  • -l NOUVEAU_NOM ANCIEN_NOM : renomme l'utilisateur
  • -u UID : change l'UID
  • -s SHELL : change le shell
  • -L : verrouille le compte
  • -U : déverrouille
  • -e DATE : modifie la date d'expiration

Exemple :

usermod -u 1600 -s /bin/bash alice

userdel

Supprime un utilisateur. userdel -r nom supprime également son répertoire personnel.

Gestion des permissions

Les permissions sont représentées par des lettres :

  • r (4) : lecture – pour un fichier, voir le contenu ; pour un dossier, lister son contenu
  • w (2) : écriture – pour un fichier, modifier le contenu ; pour un dossier, créer/supprimer/renommer des éléments
  • x (1) : exécution – pour un fichier, l'exécuter ; pour un dossier, droit minimal pour accéder aux fichiers

Les permissions sont groupées par utilisateur (propriétaire), groupe propriétaire, autres.

Modificasion avec chmod

Syntaxe : chmod [options] [classe][opérateur][permissions] fichier

Classes : u (utilisateur), g (groupe), o (autres), a (tous). Opérateurs : + (ajouter), - (retirer), = (définir exactement).

Exemples :

chmod u+x script.sh        # ajoute l'exécution au propriétaire
chmod g=rw,o=r document    # propriétaire identique, groupe lit+écrit, autres lecture seule
chmod a-x *.sh             # retire l'exécution pour tous

Représentation numérique : addition des valeurs binaires (r=4, w=2, x=1). Exemple : 755 correspond à rwxr-xr-x.

Option -R : applique récursivement à tout un dossier.

Étiquettes: Linux comptes permissions useradd chmod

Publié le 15 juin à 03h13