"Aucun utilisateur" mais l'utilisateur est dans le fichier passwd

12

Regarder les fichiers dans / etc /:

/etc/group:lbutler:*:1005:
/etc/master.passwd:lbutler:$6$s..../:1005:1005::0:0:L Butler:/home/lbutler:/bin/bash
/etc/passwd:lbutler:*:1005:1005:L Butler:/home/lbutler:/bin/bash

Mais:

$ passwd lbutler
passwd: lbutler: no such user

En outre, les fichiers /home/lbutler/apparaissent sous la forme uid 1005 et gidlbutler

Les autres utilisateurs /etc/passwdne semblent pas avoir de problème

lbutlr
la source

Réponses:

9

Il semble que certaines corromptions se soient produites avec votre /etc/master.passwd. Vous pouvez le restaurer à son état normal, essayez:

  • vipwpour éditer /etc/master.passwd.
  • Enregistrez-le sans aucun changement.

Vous pouvez également utiliser pwd_mkdbpour mettre à jour la base de données de mots de passe.

cuonglm
la source
5
+1: L'OP est peut-être un utilisateur Linux et pense que le système d'exploitation fait réellement attention à / etc / passwd comme source principale. Sur FreeBSD, les fichiers DB générés à partir de / etc / passwd et autres sont la véritable source principale de vérité.
Warren Young
OP veuillez utiliser vipwà l'avenir, vous n'aurez pas à gérer les détails.
Winny
L'utilisation de vipw et la sauvegarde inchangée n'ont fait aucune différence. J'ai regardé les sauvegardes et le mot de passe de l'utilisateur répertorié avant que celui-ci dans le fichier master.passwd ne change à peu près à la fois où le majordome a cessé de pouvoir se connecter. Je peux restaurer le master.passwd dois-je exécuter pwd_mkdb /etc/master.passwd? @winny: je n'ai jamais directement modifié un fichier passwd
lbutlr
Cela devrait être les bons arguments d'invocation:pwd_mkdb -p /etc/master.shadow
Winny
3

Essayez pwd_mkdb -p /etc/master.passwd. De man pwd_mkdb:

 -p    Create a Version 7 style password file and install it into
       /etc/passwd.
Vladislav
la source
1

J'ai remarqué que l'utilisateur immédiatement avant lbutler avait un UID et un GID de 10014 (au lieu du 1014 attendu). Cet utilisateur a changé son mot de passe et après cela, l'UID 1015 n'a pas pu se connecter. En utilisant vipw, j'ai inversé les deux lignes et enregistré le fichier. Les deux utilisateurs peuvent désormais se connecter et les propriétés apparaissent correctement. Merci pour les pointeurs.

lbutlr
la source
0

FreeBSD utilise les fichiers de base de données pour rechercher les mots de passe et les utilisateurs, etc. Ainsi, le fichier / etc / passwd et également le fichier master.passwd sont uniquement là pour des raisons de compatibilité et d'information. Il ne faut jamais se fier à cela. Je ne sais pas s'il existe un moyen de demander ces fichiers de base de données directement. Peut-être qu'ils devraient lui fournir une sorte d'interface SQL pour que ppl puisse vérifier quels utilisateurs sont sur le système et ainsi de suite. Ensuite, ils pourraient supprimer complètement / etc / passwd et master.passwd.

Lars Schotte
la source