„Nie ma takiego użytkownika”, ale użytkownik jest w pliku passwd


12

Przeglądanie plików w / 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

Ale:

$ passwd lbutler
passwd: lbutler: no such user

Ponadto pliki są /home/lbutler/wyświetlane jako UID 1005 i GIDlbutler

/etc/passwdWygląda na to, że inni użytkownicy nie mają problemu

Odpowiedzi:


9

Wygląda na to, że wystąpiły u ciebie niektóre korupcje /etc/master.passwd. Możesz przywrócić go do normalnego stanu, spróbuj:

  • vipwedytować /etc/master.passwd.
  • Zapisz to bez zmian.

Możesz także użyć pwd_mkdbdo aktualizacji bazy danych haseł.


5
+1: OP może być użytkownikiem Linuksa i myśli, że system operacyjny zwraca uwagę na / etc / passwd jako główne źródło. W FreeBSD pliki DB generowane z / etc / passwd i takie są faktycznym podstawowym źródłem prawdy.
Warren Young,

OP, proszę użyć vipww przyszłości, wtedy nie musisz zarządzać szczegółami.
Winny

Korzystanie z vipw i save bez zmian nie miało znaczenia. Spojrzałem na kopie zapasowe i hasło użytkownika wymienionego na liście, zanim ta w pliku master.passwd zmieniła się w momencie, gdy lokaj przestał się logować. Czy mogę przywrócić master.passwd, czy powinienem uruchomić pwd_mkdb /etc/master.passwd? @winny: Nigdy nie edytowałem bezpośrednio pliku passwd
lbutlr

To powinny być odpowiednie argumenty wywołania:pwd_mkdb -p /etc/master.shadow
Winny

3

Spróbować pwd_mkdb -p /etc/master.passwd. Od man pwd_mkdb:

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

1

Zauważyłem, że użytkownik bezpośrednio przed lbutler miał UID i GID 10014 (zamiast oczekiwanego 1014). Ta użytkownik zmieniła hasło, a następnie UID 1015 nie mógł się zalogować. Za pomocą vipw odwróciłem dwie linie i zapisałem plik. Zarówno użytkownicy mogą się teraz zalogować, a prawa własności pojawiają się poprawnie. Dzięki za wskazówki.


0

FreeBSD korzysta z plików bazy danych do wyszukiwania haseł i użytkowników itd. Tak więc plik / etc / passwd, a także master.passwd są dostępne tylko ze względu na kompatybilność i informacje. Nigdy nie należy na tym polegać. Nie wiem, czy istnieje sposób bezpośredniego zapytania o pliki bazy danych. Może powinni udostępnić interfejs SQL, aby ppl mógł sprawdzić, którzy użytkownicy są w systemie i tak dalej. Następnie mogą całkowicie znieść / etc / passwd i master.passwd.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.