"Немає такого користувача", але користувач перебуває у файлі passwd


12

Переглядаючи файли в / 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

Але:

$ passwd lbutler
passwd: lbutler: no such user

Також файли /home/lbutler/відображаються як uid 1005 та gidlbutler

З іншими користувачами в програмі /etc/passwdне виникає проблем

Відповіді:


9

Здається, що з вами трапилися деякі корупціонери /etc/master.passwd. Ви можете відновити його до нормального стану, спробуйте:

  • vipwредагувати /etc/master.passwd.
  • Збережіть його без змін.

Ви також можете використовувати pwd_mkdbдля оновлення бази даних паролів.


5
+1: ОП може бути користувачем Linux і думає, що ОС насправді приділяє увагу / etc / passwd як першоджерелу. У FreeBSD файли БД, згенеровані з / etc / passwd, і такі є фактичним первинним джерелом істини.
Воррен Янг

ОП, будь ласка, використовуйте vipwв майбутньому, тоді вам не доведеться керувати деталями.
Вінні

Використання vipw та збереження без змін не змінило значення. Я переглянув резервні копії та пароль користувача для вказаного раніше, ніж цей файл у файлі master.passwd змінився прямо про час, коли дворецький перестав бути в змозі увійти. Я можу відновити master.passwd, чи потрібно запускати pwd_mkdb /etc/master.passwd? @winny: Я ніколи безпосередньо не редагував файл passwd
lbutlr

Це мають бути правильні аргументи виклику:pwd_mkdb -p /etc/master.shadow
Вінні

3

Спробуйте pwd_mkdb -p /etc/master.passwd. Від man pwd_mkdb:

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

1

Я помітив, що користувач безпосередньо перед lbutler мав UID та GID 10014 (замість очікуваних 1014). Цей користувач змінив свій пароль, і після цього UID 1015 не зміг увійти. За допомогою vipw я перевернув два рядки і зберег файл. Зараз обидва користувачі можуть увійти в систему, і права власності відображаються правильно. Дякую за покажчики


0

FreeBSD використовує файли баз даних для пошуку паролів та користувачів тощо. Тож / etc / passwd, а також master.passwd є лише з міркувань сумісності та інформації. Ніколи не слід покладатися на це. Я не знаю, чи є спосіб запитати ці файли бази даних безпосередньо. Можливо, вони повинні надати йому якийсь інтерфейс SQL, щоб ppl міг перевірити, які користувачі в системі тощо. Тоді вони могли повністю скасувати / etc / passwd та master.passwd.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.