Retour à l'accueil

Gestion des utilisateurs Linux UID GID groupes

L'article décompose l'identification des utilisateurs par UID/GID dans Linux, modèle d'accès, fichiers /etc/passwd shadow group. Commandes id getent useradd vipw présentées pour les diagnostics et la gestion de comptes.

Gestion des utilisateurs Linux : UID groups useradd
Advertisement 728x90

Gestion des utilisateurs et groupes Linux : UID, GID et contrôle des comptes

Le noyau Linux fonctionne avec des identifiants numériques — les UID et GID. Un nom d'utilisateur n'est qu'un alias lisible par l'humain stocké dans /etc/passwd. Les processus et fichiers sont liés à ces nombres, aussi changer un nom d'utilisateur sans préserver le UID d'origine entraînera la perte d'accès aux ressources.

Vérifiez l'utilisateur actuel :

id
# uid=1001(deployer) gid=1001(deployer) groups=1001(deployer),27(sudo),998(docker)

id -u  # Seulement le UID
whoami # Seulement le nom d'utilisateur
getent passwd deployer

getent interroge les modules NSS — y compris LDAP — contrairement à une lecture directe du fichier.

Google AdInline article slot

Modèle d'accès et propriété

Chaque inode stocke un propriétaire (UID) et un groupe (GID). Le noyau vérifie les permissions dans cet ordre : UID/GID du processus → propriétaire ? → groupe ? → autres. La première correspondance détermine l'accès.

Exemple :

ls -la /var/log/nginx/
# -rw-r----- 1 www-data adm 187234 Mar 26 10:41 access.log

Le propriétaire est www-data, le groupe est adm. Un processus exécuté en tant que www-data obtient un accès de niveau propriétaire, ignorant sa participation au groupe.

Google AdInline article slot

Plages de UID :

  • 0 : root
  • 1–999 : comptes système (démons, pas de connexion)
  • 1000+ : utilisateurs réguliers
  • 65534 : nobody

Configuré dans /etc/login.defs.

Les comptes système utilisent /usr/sbin/nologin ou /bin/false pour empêcher la connexion :

Google AdInline article slot
awk -F: '$3 < 1000 && $3 > 0 {print $1, $3, $7}' /etc/passwd

Groupes : accès partagé

Le groupe principal (GID dans /etc/passwd) s'applique aux nouveaux fichiers. Les groupes supplémentaires sont listés dans /etc/group.

Vérifiez l'appartenance :

groups  # Groupes actuels
getent group docker  # Membres
docker:x:998:deployer,ci

Les groupes simplifient le contrôle d'accès : ajoutez un utilisateur au groupe docker pour lui donner accès au socket sans sudo.

Fichiers de configuration

/etc/passwd (lisible par tous) :

deployer:x:1001:1001:Deploy Bot,,:/home/deployer:/bin/bash

Champs : nom d'utilisateur | espace réservé mot de passe (x) | UID | GID | GECOS | répertoire personnel | shell.

/etc/shadow (accès uniquement root) : contient les hachages SHA-512 ou yescrypt, ainsi que les paramètres d'expiration du mot de passe.

deployer:$6$rounds=5000$xPwF...$kE9...hash...:19800:0:99999:7:::

/etc/group :

docker:x:998:deployer,ci-bot

Commandes sûres pour éditer :

vipw    # Éditer passwd avec verrouillage
vigr    # Éditer group
pwck    # Valider la configuration

Création et configuration des utilisateurs

Utilisez useradd avec les options clés :

| Option | Description |

|--------|-------------|

| -m | Créer le répertoire personnel |

| -s | Définir le shell par défaut |

| -G | Ajouter des groupes supplémentaires |

| -r | Compte système |

| -u | Spécifier le UID |

Exemples :

useradd -m -s /bin/bash -G sudo,docker ivan
useradd -r -s /usr/sbin/nologin ci-bot

passwd ivan  # Définir le mot de passe
chpasswd <<< 'ivan:secret'
passwd -e ivan  # Forcer le changement de mot de passe au prochain login

useradd -m copie depuis /etc/skel et attribue les droits sur le répertoire personnel.

umask soustrait à 0666 (fichiers) ou 0777 (répertoires). Valeur par défaut : 0022.

Environnement et modèles

/etc/skel contient les modèles pour les nouveaux répertoires personnels : .bashrc, .profile.

Paramètres globaux :

  • /etc/default/useradd : valeurs par défaut pour useradd
  • /etc/profile.d/*.sh : scripts d'environnement pour les connexions
  • /etc/login.defs : umask, plages de UID

Points clés :

  • Le UID contrôle l'accès, pas le nom d'utilisateur.
  • Utilisez getent plutôt que cat /etc/passwd pour des recherches compatibles NSS.
  • Les groupes sont le mécanisme principal pour déléguer des privilèges.
  • Éditez toujours les fichiers de configuration via vipw ou vigr.
  • Les comptes système doivent avoir /usr/sbin/nologin ou /bin/false et un UID inférieur à 1000.

— Editorial Team

Advertisement 728x90

Lire ensuite