"Tidak ada pengguna seperti itu" tetapi pengguna dalam file passwd

12

Melihat file di / 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

Tapi:

$ passwd lbutler
passwd: lbutler: no such user

Juga, file dalam /home/lbutler/ditampilkan sebagai uid 1005 dan gidlbutler

Pengguna lain di /etc/passwdtampaknya tidak memiliki masalah

lbutlr
sumber

Jawaban:

9

Tampaknya beberapa korupsi terjadi pada Anda /etc/master.passwd. Anda dapat mengembalikannya ke kondisi normal, coba:

  • vipwuntuk mengedit /etc/master.passwd.
  • Simpan tanpa perubahan.

Anda juga dapat menggunakan pwd_mkdbuntuk memperbarui basis data kata sandi.

cuonglm
sumber
5
+1: OP mungkin pengguna Linux, dan berpikir bahwa OS sebenarnya memperhatikan / etc / passwd sebagai sumber utama. Pada FreeBSD, file DB yang dihasilkan dari / etc / passwd dan semacamnya adalah sumber utama kebenaran yang sebenarnya.
Warren Young
OP silakan gunakan vipwdi masa depan maka Anda tidak perlu mengelola detailnya.
Winny
Menggunakan vipw dan menyimpan tidak berubah tidak membuat perbedaan. Saya memang melihat backup dan kata sandi pengguna untuk pengguna yang terdaftar sebelum ini di file master.passwd berubah tepat tentang waktu butler berhenti bisa masuk. Saya dapat mengembalikan master.passwd saya harus menjalankan pwd_mkdb /etc/master.passwd? @winny: Saya tidak pernah secara langsung mengedit file passwd
lbutlr
Ini harus menjadi argumen doa yang tepat:pwd_mkdb -p /etc/master.shadow
Winny
2

Coba pwd_mkdb -p /etc/master.passwd. Dari man pwd_mkdb:

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

Saya perhatikan bahwa pengguna segera sebelum lbutler memiliki UID dan GID 10014 (bukan yang diharapkan 1014). Pengguna itu mengubah kata sandi dan setelah itu, UID 1015 tidak bisa masuk. Menggunakan vipw saya membalikkan dua baris dan menyimpan file. Kedua pengguna sekarang dapat masuk dan kepemilikan muncul dengan benar. Terima kasih untuk petunjuknya.

lbutlr
sumber
0

FreeBSD memang menggunakan file database untuk mencari kata sandi dan pengguna dan sebagainya. Jadi / etc / passwd dan juga master.passwd hanya ada untuk alasan kompatibilitas dan informasi. Seseorang seharusnya tidak pernah mengandalkan itu. Saya tidak tahu apakah ada cara untuk meminta file database secara langsung. Mungkin mereka harus menyediakan semacam antarmuka SQL untuk itu sehingga ppl dapat memeriksa apa yang ada di sistem dan sebagainya. Kemudian mereka bisa menghapus / etc / passwd dan master.passwd sepenuhnya.

Lars Schotte
sumber