Saya melakukan kesalahan yang sama menambahkan akun saya ke grup (lupa itu -a
). Saya menginstal sistem saya dengan login root terkunci, dan akun saya adalah satu-satunya di mesin.
Jawaban yang diterima tidak membantu saya. Saat boot ke mode pemulihan, semua yang saya dapatkan adalah pesan yang tidak membantu
Tidak dapat membuka akses ke konsol, akun root dikunci. Lihat halaman manual sulogin (8) untuk lebih jelasnya
Tekan ENTER untuk melanjutkan
Setelah menekan ENTER, sistem boot secara normal: tidak beruntung mendapatkan akses root untuk memperbaiki masalah. Saya meninggalkan jawaban ini untuk berjaga-jaga seandainya seseorang berakhir pada posisi saya pada titik ini. Gunakan yang berikut ini hanya jika Anda tidak bisa masuk ke mode pemulihan melalui menu Grub .
Panduan untuk mendapatkan shell root:
- Boot ke menu Grub, dan sorot (tapi jangan tekan Enter!) Opsi boot normal (default, bukan pemulihan!).
- Tekan
e
. Grub akan menampilkan editor baris perintah dengan banyak baris, yang semuanya mungkin terlihat asing jika tidak mengintimidasi. Jangan khawatir, setiap perubahan yang Anda lakukan tidak disimpan secara permanen.
- Temukan baris yang berbunyi
linux ... ro ...
. Ini adalah baris perintah kernel. Ganti ro
token dengan rw
, untuk membuat sistem file root baca / tulis, dan tambahkan parameter baris perintah kernel init=/bin/sh
,. Ini menginstruksikan kernel untuk mengeksekusi sh
bukan /sbin/init
. Pada akhirnya, garis harus seperti linux ... rw init=/bin/sh ...
. Catatan: Anda dapat bertahan bahkan dengan grub>
prompt kosong . Dengan senang hati saya akan menjelaskan bagaimana, langkah demi langkah, jika semuanya gagal untuk Anda; tinggalkan komentar untuk jawaban ini.
- Setelah perubahan, tekan F10untuk menggunakan perintah dari editor untuk mem-boot sistem (atau baca instruksi cara mem-boot tepat di bawah jendela editor, jika Grub Anda dikompilasi secara berbeda). Anda akan mendapatkan prompt shell root, karena proses init berjalan sebagai PID 1 dengan identitas root.
- Buat perubahan yang ingin Anda buat, misalnya
usermod -a -Gadm,sudo YOURUSERID
. Konfirmasikan id -a YOURUSERID
bahwa Anda telah mendapatkan kembali keanggotaan sudo Anda. Jika Anda mendapatkan kesalahan "perintah tidak ditemukan", gunakan /sbin/usermod
dan /bin/id
.
Anda tidak dapat mematikan atau menyalakan ulang sistem dengan bersih pada saat ini. reboot
, halt
atau poweroff
tidak akan berfungsi, dan exit
dari shell akan menyebabkan panik kernel, karena proses PID 1 tidak diharapkan untuk keluar begitu saja. Jadi dua perintah berikutnya yang harus Anda keluarkan adalah:
sync
exec /sbin/init
sync
kalau-kalau ada yang tidak beres, untuk menyimpan semua perubahan ke disk, dan exec
untuk mengganti shell dengan yang asli init
(yang dapat systemd, pemula atau System V init, tetapi selalu disebut /sbin/init
). Sistem kemungkinan besar akan melanjutkan boot secara normal (tanpa mode pemulihan).
- Login dan reboot sistem sekali, misalnya - Anda
sudo reboot
seharusnya mendapatkan hak istimewa sudo Anda kembali. Reboot disarankan, karena (walaupun sangat jarang) init
dapat melewati parameter tambahan selama boot normal, dan itu tidak kami lakukan. Jika exec
gagal, cukup reset mesin dan biarkan boot normal. Semua filesystem jurnal modern seperti ext4, xfs dan btrfs pulih dengan cepat (beberapa detik untuk pemeriksaan jurnal paling banyak, jika sync
diedit sebelum reset), dan Anda akan siap.
Sedikit latar belakang
Ada diskusi tentang laporan bug Debian tentang masalah ini, dan, sejauh yang dipahami, ini diputuskan sebagai fitur dan bukan bug, yang saya anggap sebagai kesalahan. Setelah berkecimpung dalam bisnis ini selama 25 tahun, saya tidak dapat membantu tetapi sama sekali tidak setuju dengan argumen Michael Biebl dalam pesan # 31 di utas itu:
Pertimbangkan ini: Anda memiliki laptop dengan akun root yang terkunci. Secara default, boot loader grub membuat entri boot untuk mode penyelamatan. Jadi, bahkan jika Anda mengunci bios untuk tidak mengizinkan boot dari CD-Rom atau USB, dan Anda melindungi password grub, seseorang dapat dengan mudah mendapatkan akses root jika Anda meninggalkan laptop tanpa pengawasan sejenak.
Yang benar, IMO, jika tidak cukup umum, keberatan diberikan dalam pesan # 70 oleh Felipe Sateler:
Bagi banyak (kebanyakan?) Komputer, akses fisik berarti gim kehilangan keamanan, karena Anda hanya dapat membongkar kotak dan mendapatkan hard drive.
Ini berlaku terutama untuk laptop, yang disebutkan dalam argumen Michael: jika Anda membiarkannya tanpa pengawasan sesaat, dan seseorang mencari data Anda, laptop itu akan hilang dan tidak pernah terlihat lagi. Dan untuk mesin apa pun , bukan "banyak" atau "sebagian besar", bahkan yang dibaut 8 poin ke rak, segera setelah penyerang mendapatkan akses fisik ke mesin, permainan benar-benar berakhir.