Saya mengubah baris terakhir di / etc / passwd dan saya tidak bisa menggunakan sudo

15

Inilah yang telah saya lakukan:

  1. Ubah nama pengguna di baris terakhir: tinykeabc

    • tiny@tty7:~$ sudo vim /etc/passwd
    • Ubah ini:
      tiny:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
      menjadi ini:
      abc:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
  2. tiny@tty7:~$ sudo vim /etc/shadow

    • itu menunjukkan: [sudo] passwork for abc:

    • Saya tidak mengubah kata sandi saya tetapi tidak bisa login root!

    • Saya ketik Ctrl+ Alt+ F1untuk tty1tapi tidak kecil atau abc tidak bisa login dengan password saya

dan saya mencoba untuk melihat ls ~ -la, ini menunjukkan seperti ini:

drwxr-xr-x 28 abc tiny 4096 Apr 6 03:04 .

Bagaimana saya bisa login root? dan mengapa nama pengguna di prompt tiny@tty7masih kecil sementara di sudo itu menunjukkan kata sandi abc?

burung kecil
sumber

Jawaban:

18

Alasan Anda macet setelah diedit adalah karena /etc/shadowfile berisi entri untuk kata sandi tinytetapi tidak ada entri abc, sedangkan /etc/passwdfile berisi entri untuk abcdan bukan untuk tiny. Ketika sudodilihat, itu mengidentifikasi Anda dengan benar (sesuai dengan file kata sandi) sebagai abcberdasarkan UID dari proses yang Anda jalankan, tetapi ketika itu terlihat untuk membandingkan apa yang Anda masukkan sebagai kata sandi dengan kata sandi terenkripsi (hash) yang disimpan /etc/shadow, itu tidak bisa dapat menemukan entri abc, sehingga harus melaporkan kegagalannya.

Seperti yang dikatakan shaddy dalam jawabannya , jangan mengedit kata sandi atau file bayangan dengan tangan. Jika Anda harus melanggar aturan, maka edit keduanya dalam satu permintaan tunggal vim, dan jangan keluar dari vimsampai Anda telah membuktikan bahwa perubahan itu cukup waras untuk bekerja dengan menggunakan jendela terminal lain, dan lakukan menyimpan salinan cadangan file sebelum Anda mulai meretasnya, dan pertimbangkan kembali mengapa Anda melanggar aturan, karena mungkin itu bukan ide yang baik.

Jonathan Leffler
sumber
22

Anda TIDAK PERNAH mengedit file passwd Anda secara manual karena Anda akan mengacaukan segalanya.

Cara yang tepat untuk mengubah nama pengguna Anda adalah:

usermod -l newUsername oldUsername

Kemudian ubah folder rumah:

usermod -d /home/newHomeDir -m newUsername

Untuk mengubah kata sandi, Anda harus menggunakan:

sudo passwd yourusername

Saya sarankan Anda untuk mengembalikan file passwd Anda kembali, atau jika Anda tidak dapat mengeditnya karena Anda tidak dapat login dengan root - kemudian boot dengan live cd dan mengembalikan file kembali. Kemudian gunakan cara yang tepat.

shaddy
sumber
1
terima kasih ~ saya pikir yang paling sulit adalah login dengan root lalu saya reboot, pilih mode revovery, root dan kemudian dapatkan file passwd saya kembali ~ itu bekerja ~
tinyork
0

Gunakan: vipw

Saya selalu menggunakan ini di FreeBSD dan baru saja dikonfirmasi Anda bisa menggunakannya untuk Ubuntu juga. Silakan baca halaman ini: Ubuntu Man Page untuk vipw

Nyonya Geek
sumber
-3

prosedur untuk mengubah nama pengguna Anda (tetapi tidak uid) dengan tangan:

  1. Periksalah kepala Anda, ketika itu gagal lanjutkan ke langkah kedua.
  2. edit file bayangan menduplikasi baris pengguna dengan nama pengguna baru.
  3. edit grup, sudoers, yang memperbolehkan izin nama pengguna baru, tetap bertahan lama
  4. secara simbolis menautkan direktori home ke nama baru
  5. edit file passwd yang mengubah nama pengguna dan direktori home
  6. sunting bayangan, sudoers, grup untuk menghapus entri lama yang kami simpan di langkah ketiga
  7. edit alias dan referensi lain ke nama pengguna lama.
  8. logout, alihkan ke konsol teks (langkah selanjutnya tidak akan berfungsi jika ada program yang berjalan di direktori home pengguna, termasuk manajer jendela)
  9. cd ke direktori di atas direktori home Anda.
  10. hapus tautan simbolis, dan ganti nama direktori rumah.
  11. logout dan login seperti biasa.

Banyak hal yang lebih mudah untuk mengubah nama pengguna lain, meskipun masih tidak sederhana.

Hildred
sumber