Vipw

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Gestion des comptes système (édition sécurisée)
Commandes vipw, vipw -s, vigr, vigr -s
Fichiers édités /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow
Vérification pwck, grpck
Voir aussi Useradd (création de comptes), Sudoers (visudo, même famille d'outils)

vipw et vigr sont les éditeurs dédiés des fichiers de comptes système : ils permettent de modifier à la main /etc/passwd, /etc/shadow, /etc/group et /etc/gshadow avec un verrouillage (lock) qui empêche toute écriture concurrente pendant l'édition, contrairement à un simple vi /etc/passwd.

Pourquoi ne jamais éditer /etc/passwd directement

Ouvrir /etc/passwd (ou /etc/shadow, /etc/group) avec un éditeur classique pose plusieurs risques que vipw/vigr évitent :

  • Absence de verrou : un autre processus (useradd, passwd, chsh, un script d'administration…) peut écrire dans le fichier pendant que l'éditeur le tient ouvert, et la dernière écriture gagne — perte silencieuse de modifications concurrentes.
  • Cohérence des champs : chaque ligne doit garder exactement 7 champs séparés par des deux-points dans /etc/passwd (6 dans /etc/group), et rester synchronisée avec le fichier shadow correspondant (même nom d'utilisateur/groupe, même ordre) — une erreur de saisie (un : en trop ou en moins) peut rendre le compte inutilisable, voire bloquer toute connexion si c'est root qui est touché.
  • Fichier de secours : à la sortie de vipw/vigr, si le fichier a été modifié, l'outil régénère automatiquement la copie de secours (/etc/passwd-, /etc/group-, /etc/shadow-) — un vi direct ne le fait pas.
  • Verrouillage d'accès en cas d'échec : si le verrou existe déjà (une session vipw laissée ouverte, un crash), vipw refuse de démarrer une seconde édition plutôt que de risquer une corruption — le verrou (/etc/passwd.lock ou équivalent) doit être supprimé manuellement seulement après vérification qu'aucune édition n'est réellement en cours.

vipw et vigr

vipw          # édite /etc/passwd (verrouillé), régénère /etc/passwd- si modifié
vipw -s       # édite /etc/shadow (verrouillé), régénère /etc/shadow-

vigr          # édite /etc/group (verrouillé), régénère /etc/group-
vigr -s       # édite /etc/gshadow (verrouillé), régénère /etc/gshadow-

L'éditeur invoqué est celui défini par la variable d'environnement $EDITOR (ou $VISUAL), avec un repli sur vi si aucune n'est définie — malgré le nom de la commande, ce n'est pas forcément vi qui s'ouvre.

Vérifier la cohérence après édition

Après toute modification manuelle (même via vipw/vigr), il est recommandé de lancer les outils de contrôle de cohérence avant de considérer l'édition terminée :

pwck          # vérifie /etc/passwd et /etc/shadow : champs valides, UID uniques,
              # shells existants, cohérence passwd <-> shadow
grpck         # vérifie /etc/group et /etc/gshadow : champs valides, GID uniques,
              # cohérence group <-> gshadow, membres référencés existants

Ces deux commandes signalent les incohérences (entrée orpheline dans shadow sans équivalent dans passwd, doublon d'UID/GID, champ manquant…) et proposent, en mode interactif, de les corriger ou de supprimer les lignes fautives — à valider prudemment, une suppression étant irréversible.

Voir aussi

  • Useradd — création de comptes, modifie les mêmes fichiers de façon automatisée et sans risque de verrouillage
  • Sudoersvisudo applique le même principe de verrouillage et de vérification syntaxique à /etc/sudoers