Saya salah masuk
chsh -s /usr/bin
dari pada
chsh -s /bin/bash
dan sekarang saya tidak bisa masuk ke shell root, bagaimana cara memulai bash shell sebagai root secara manual?
sudo vipwbekerja?
Saya salah masuk
chsh -s /usr/bin
dari pada
chsh -s /bin/bash
dan sekarang saya tidak bisa masuk ke shell root, bagaimana cara memulai bash shell sebagai root secara manual?
sudo vipwbekerja?
Jawaban:
Meskipun root tidak memiliki akses, pengguna dalam grup sudo masih dapat menjalankan perintah istimewa - sepertinya kesalahannya bukan pada sudo, tetapi di tempat lain dalam sudo chshperintah (mis. Kesalahan chsh).
Dengan demikian sudo Anda tampaknya berfungsi.
File passwd dapat diedit dengan:
sudo vipw
Dan shell root berubah secara manual.
(baris pertama /etc/passwdbiasanya)
root:x:0:0:root:/root:/bin/bash
Fom man vipw
Perintah vipw dan vigr masing-masing mengedit file / etc / passwd dan / etc / group. Dengan flag -s, mereka akan mengedit versi shadow dari file-file tersebut, / etc / shadow dan / etc / gshadow. Program akan mengatur kunci yang sesuai untuk mencegah korupsi file.
vipwdan vigrterima kasih! Saya selalu menggunakansudo vim /etc/passwd
visudo sudo.ws/man/1.8.15/visudo.man.html juga, @tac
sudo -e, yang melakukan fitur penguncian-pengeditan untuk pengeditan apa pun.
Opsi lain, dengan asumsi Anda memiliki akses ke akun lain, adalah secara manual mengganti shell default dengan menggunakan su --shell=/bin/bash:
-s, --shell = SHELL
jalankan SHELL jika / etc / shells mengizinkannya
Keuntungan utama dari ini adalah hanya membutuhkan akses ke akun lain, bukan yang istimewa .
Untuk alasan keamanan, login apakah tekstual atau grafis dan utilitas suka sudan sudoyang memungkinkan Anda untuk menjalankan perintah sebagai pengguna yang berbeda semua menjalankan perintah tersebut melalui shell pengguna target. Jika shell pengguna target tidak berfungsi, well, Anda telah melihat hasilnya :-(
Kecuali Anda memiliki root shell yang masih berfungsi berjalan di suatu tempat atau sesuatu seperti biner setuid-root atau sesuatu yang memungkinkan Anda untuk mem-bypass ini, me-reboot dan memperbaiki masalah menggunakan sistem penyelamatan atau gambar langsung mungkin merupakan taruhan terbaik Anda.
Boot sistem penyelamatan, pasang sistem file root sistem nyata Anda di suatu tempat, katakan /mnt/foo,, dan edit /mnt/foo/etc/passwduntuk memperbaiki shell. Simpan, lepas gunung, dan Anda selesai.
/etc/passwdbukan plaintext? Saya belum melihat itu setidaknya, seperti, satu dekade. Apakah itu masih berlaku pada beberapa sistem? Lagi pula, saya kira chroot /mnt/foo chsh -s /bin/bashmungkin melakukan trik dalam kasus itu?
Tambahkan init=/bin/bashke baris perintah kernel Anda (jika boot dengan grub, tekan euntuk mengedit entri boot), dan Anda akan memiliki bash shell yang berjalan sebagai root tanpa harus memberikan kata sandi. Root filesystem Anda kemungkinan masih akan di-mount hanya baca, jadi Anda harus melakukan remount terlebih dahulu, kemudian Anda dapat mengganti shellnya kembali chsh.
sudo usermod -s /bin/bash jdoe
akan mengubah shell jdoe menjadi bash. Anda kemudian sudo egrep jdoe /etc/passwddapat memverifikasi.