Kehilangan kata sandi untuk pengguna di Server Linux: Bagaimana cara meresetnya?

17

Di Server, pengguna 16040 telah kehilangan kata sandi. Saya memiliki kata sandi untuk root tetapi tidak memiliki kata sandi untuk pengguna 16040. Bagaimana cara saya mereset kata sandi?

Dengan passwd 16040, unix tanya saya kata sandi saat ini yang tidak saya miliki. Apakah ada perintah untuk mereset kata sandi pengguna tanpa kata sandi saat ini?

passwd 16040
Changing password for 16040.
Current password for [email protected]:
Catanzaro
sumber

Jawaban:

24

Jika Anda menjalankan passwd 16040sebagai root, Anda tidak akan diminta kata sandi saat ini.

Setelah mengubah kata sandi, Anda harus mempertimbangkan untuk menerbitkan chage -d 0 16040. Ini membuat tanggal perubahan terakhir kata sandi jauh di masa lalu; dengan asumsi kata sandi akan kedaluwarsa pada sistem Anda, ini akan memaksa pengguna untuk mengubah kata sandi setelah masuk. Ini memberi mereka kesempatan untuk memilih kata sandi yang hanya diketahui oleh mereka.

Artur Szymczak
sumber
3

Anda harus mengeluarkan passwd 16040 sebagai root ( sudo passwd 16040jika pengguna Anda ada dalam file sudoers) untuk mengubah kata sandinya. Itu tidak akan meminta Anda untuk yang sekarang.

Atau, jika Anda memiliki akses fisik ke kotak, Anda dapat menambahkan init=/bin/bashsebagai parameter kernel untuk mendapatkan akses root dan kemudian mengeluarkan passwd 16040.

peperunas
sumber
3
Memiliki prompt dalam perintah inline agak membingungkan dan dapat dengan mudah disalahartikan sebagai bagian dari perintah. Harap hanya gunakan konfirmasi dalam kutipan blokir. Selain itu, # >agak jarang dan di sini >hanya mengundang untuk disalahtafsirkan sebagai bagian dari perintah - praktik umum menggunakan sederhana #untuk root-shell dan $untuk yang non-root.
Andreas Wiese
Anda benar, saya telah mengedit jawaban saya demi kejelasan. Terima kasih.
peperunas
1

Jika Anda tidak dapat login secara langsung sebagai root, Anda dapat mencoba

  • sudo /usr/bin/passwd 16040.
  • sudo -i dan kemudian /usr/bin/passwd 16040

Saya berasumsi bahwa passwdada di / usr / bin (Anda dapat memverifikasi dengan perintah which passwd)

Cepat
sumber
sudo bashuntuk memulai rootshell adalah (walaupun umum) benar-benar, sudopraktik yang sangat buruk . Itu sudo -satau sudo -i(non-login atau login-shell, resp.). Ini bahkan menghargai shell default yang telah Anda atur /etc/passwdtanpa harus mempedulikannya sendiri. Selain itu, bashtanpa path lengkap adalah ide buruk sendiri, karena ini akan menjadi salah satu dari binari-palsu pertama yang dimasukkan oleh pengguna jahat ke suatu tempat $PATH.
Andreas Wiese
Saya setuju tentang spesifikasi path lengkap, dan penggunaan sudo -i, jadi saya memodifikasi jawabannya ... tetapi jika Anda berbicara tentang keamanan dan kemungkinan troian tersembunyi di $PATHmungkin lebih baik untuk menghindari menggunakan sudo -skarena Anda menambahkan setidaknya $USER/bindirektori dan semua alias yang dapat Anda bayangkan ... :-)
Hastur
Poin bagus, tentu saja, tetapi tergantung pada sudokonfigurasi: konfigurasi default yang dikirimkan bersama sudotidak mempertahankan $HOMEset variabel, sehingga Anda akan mendapatkan file rc Anda sendiri, bukan yang $SUDO_USERada.
Andreas Wiese