Vipw
| 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-) — unvidirect 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.lockou é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.