/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とgidとして表示されます。lbutler
他のユーザーは/etc/passwd
あまり問題ないようです。
答え1
あなたのようです/etc/master.passwd
。正常に復元できます。以下を試してください。
vipw
編集する/etc/master.passwd
。- 変更せずに保存します。
また、それを使用してpwd_mkdb
パスワードデータベースを更新することもできます。
答え2
努力するpwd_mkdb -p /etc/master.passwd
。からman pwd_mkdb
:
-p Create a Version 7 style password file and install it into
/etc/passwd.
答え3
lbutler 以前のユーザーの UID と GID は 10014 (予想される 1014 の代わりに) であることがわかりました。ユーザーがパスワードを変更した後、UID 1015はログインできません。 vipwを使って2行を置き換えてファイルを保存しました。これで、両方のユーザーがログインできるようになり、所有権が正しく表示されます。アドバイスありがとうございます。
答え4
FreeBSDはデータベースファイルを使用してパスワードやユーザーなどを照会します。したがって、/etc/passwd と master.passwd は互換性と情報上の理由でのみ存在します。決してこれに頼ってはいけません。データベースファイルを直接照会する方法があるかどうかわかりません。おそらく、彼らはpplがシステムなどのユーザーを識別できるように、いくつかのSQLインタフェースを提供する必要があるかもしれません。その後、/etc/passwdとmaster.passwdを完全に削除できます。