Berikut adalah beberapa cara yang dapat saya pikirkan, dari yang paling tidak mengganggu sampai yang paling mengganggu.
Tanpa Memulai Ulang
Dengan sudo: jika Anda memiliki sudoizin untuk menjalankan passwd, Anda dapat melakukan:
sudo passwd root
Masukkan kata sandi Anda , lalu masukkan kata sandi baru untuk root dua kali. Selesai
Mengedit file : karya ini dalam kasus tidak mungkin Anda tidak memiliki penuh sudoakses, tetapi Anda lakukan memiliki akses ke mengedit /etc/{passwd,shadow}. Buka /etc/shadow, baik dengan sudoedit /etc/shadow, atau dengan sudo $EDITOR /etc/shadow. Ganti bidang kata sandi root (semua karakter acak antara titik dua dan ketiga :) dengan bidang kata sandi pengguna Anda sendiri. Menyimpan. Lokal memiliki kata sandi yang sama dengan Anda. Masuk dan ubah kata sandi menjadi sesuatu yang lain.
Ini yang mudah.
Reboot Diperlukan
Mode Pengguna Tunggal : Ini baru saja dijelaskan oleh Renan. Ini bekerja jika Anda bisa mendapatkan GRUB (atau boot loader Anda) dan Anda dapat mengedit baris perintah Linux. Tidak berfungsi jika Anda menggunakan Debian, Ubuntu, dan beberapa lainnya. Beberapa konfigurasi boot loader memerlukan kata sandi untuk melakukannya, dan Anda harus tahu itu untuk melanjutkan. Tanpa basa-basi:
Mulai ulang.
Masukkan kata sandi waktu boot, jika ada.
Masuk ke menu boot loader Anda.
Jika mode pengguna tunggal tersedia, pilih itu (Debian menyebutnya 'Mode pemulihan').
Jika tidak, dan Anda menjalankan GRUB:
Sorot opsi boot normal Anda.
Tekan euntuk masuk ke mode edit. Anda mungkin dimintai kata sandi GRUB di sana.
Sorot garis yang dimulai dengan kernelatau linux.
Tekan e.
Tambahkan kata 'tunggal' di akhir. (Jangan lupa menambahkan spasi!)
Tekan Enterdan boot bait yang telah diedit. Beberapa GRUB menggunakan Ctrl- X, beberapa menggunakan b. Ia mengatakan yang mana itu di bagian bawah layar.
Sistem Anda akan boot dalam mode pengguna tunggal. Beberapa distribusi tidak akan meminta Anda untuk kata sandi root pada saat ini (yang berbasis Debian dan yang melakukannya). Anda root sekarang. Ubah kata sandi Anda:
mount /-o remount,rw
passwd # Enter your new password twice at the prompts
mount /-o remount,ro
sync # some people sync multiple times. Do what pleases you.
reboot
dan reboot, atau, jika Anda tahu tingkat normal Anda, katakan telinit 2(atau apa pun itu).
Menggantiinit : dangkal mirip dengan trik mode pengguna tunggal, dengan sebagian besar instruksi yang sama, tetapi membutuhkan kecakapan lebih banyak dengan baris perintah. Anda mem-boot kernel seperti di atas, tetapi alih-alih single, Anda menambahkan init=/bin/sh. Ini akan berjalan /bin/shdi tempat init, dan akan memberi Anda shell yang sangat awal dengan hampir tidak ada fasilitas. Pada titik ini, tujuan Anda adalah:
Pasang volume root.
Dapatkan passwdberlari.
Ubah kata sandi Anda dengan passwdperintah.
Tergantung pada pengaturan khusus Anda, ini mungkin sepele (identik dengan instruksi untuk mode pengguna tunggal), atau sangat tidak sepele: memuat modul, menginisialisasi perangkat lunak RAID, membuka volume terenkripsi, mulai LVM, dan lain-lain. Tanpa init, Anda tidak menjalankan demon atau proses lain selain /bin/shanak-anaknya, jadi Anda benar-benar sendirian. Anda juga tidak memiliki kontrol pekerjaan, jadi berhati-hatilah dengan apa yang Anda ketik. Satu tempat salah catdan Anda mungkin harus reboot jika Anda tidak bisa keluar dari itu.
Disk Penyelamatan : ini mudah. Boot disk penyelamat pilihan Anda. Pasang sistem file root Anda. Prosesnya tergantung pada bagaimana volume Anda berlapis, tetapi akhirnya bermuara pada:
# do some stuff to make your root volume available.# The rescue disk may, or may not do it automatically.
mkdir /tmp/my-root
mount /dev/$SOME_ROOT_DEV /tmp/my-root
$EDITOR /tmp/my-root/etc/shadow
# Follow the `/etc/shadow` editing instructions near the top
cd /
umount /tmp/my-root
reboot
Jelas, $SOME_ROOT_DEVapa pun nama perangkat blok yang ditetapkan untuk sistem file root Anda oleh disk penyelamat dan $EDITORmerupakan editor favorit Anda (yang mungkin harus ada vidi sistem penyelamatan). Setelah itu reboot, izinkan mesin untuk boot secara normal; kata sandi root akan menjadi milik pengguna Anda sendiri. Masuk sebagai root dan ubah segera.
Cara lain
Jelas, ada variasi yang tak terhitung jumlahnya di atas. Semuanya menjadi dua langkah:
Dapatkan akses root ke komputer (catch-22 - dan trik sebenarnya)
Lagi pula untuk melakukan ini dari jarak jauh? Dengan asumsi SSH mengalami shutdown.
CMCDragonkai
1
Tanpa SSH (atau, anggap salah satu dari yang lainnya, metode tidak aman yang menakutkan seperti rsh atau telnet), Anda tidak memiliki akses jarak jauh ke mesin, sehingga Anda tidak dapat mengubah kata sandi. Kecuali tentu saja komputer target memiliki masalah yang dapat dieksploitasi dari jarak jauh yang dapat membantu Anda entah bagaimana menelurkan shell. Pikiran itu menakutkanku lebih dari sekadar daemon telnet yang berjalan di atasnya. :)
Alexios
Jadi saya harus teleport secara fisik ke sana untuk memperbaikinya?
Ini seharusnya bekerja pada hampir semua distro, saya pikir.
Jika Anda dapat mengakses partisi root dari sistem lain, mis. Live CD, Anda dapat sebagai root dari sana mengedit /etc/shadow; pertama kamu harus chmod u+w shadow. Temukan entri root, mungkin yang pertama dan terlihat seperti ini:
root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::
Hapus semua di antara dua titik dua pertama sehingga Anda berakhir dengan:
root::15666:0:99999:7:::
Lalu chmod u-w shadow. Anda sekarang dapat reboot sistem dan root tidak memiliki kata sandi. Anda cukup mengetik rootdi prompt login dan tidak akan meminta. Anda kemudian dapat menggunakan passwduntuk mengatur satu.
Untuk ekstra hati-hati:
Buat salinan cadangan /etc/shadowdulu.
Jangan masuk sebagai orang lain kecuali me-root sampai Anda menetapkan kata sandi baru. Ini tidak kritis, tetapi menjaga terhadap kemungkinan teoritis malware yang tidak memiliki hak istimewa membuat semacam sambutan hangat ("Hei, mungkin tidak ada kata sandi root ..."). Agak dibuat-buat IMO.
Itu akan berhasil, tetapi anak laki-laki melakukannya membuat saya * ngeri * untuk menghapus kata sandi pada akun root. Saya rasa Ubuntu tidak menjatuhkan Anda di root shell di runlevel 1? Atau bukankah ide yang lebih baik dijalankan passwddi lingkungan chroot dari live CD?
SailorCire
Jika Anda merasa lebih aman mencoba metode-metode lain terlebih dahulu, silakan. Tetapi selama Anda tidak meninggalkan sistem tanpa kata sandi root, ini akan baik-baik saja. Tidak akan ada titik di malware yang mencoba untuk mengeksploitasi ini, karena jika itu berjalan saat boot, itu sudah memiliki hak root. Jadi jangan masuk sebagai orang lain terlebih dahulu, saya kira (mungkin ada masalah pada sistem yang tidak mengizinkan root melalui manajer tampilan, kecuali Anda dapat beralih ke konsol). Bahkan saat itu tampaknya sangat tidak mungkin.
goldilocks
@SailorCire ^^^
goldilocks
Saya sangat meragukan kemungkinan malware juga. Namun, ide di balik apa yang saya sarankan adalah melarang jenis "Oh, saya akan mengubahnya nanti, karena itu bekerja sekarang" jenis mentalitas yang banyak dari kita jatuh ke dalam.
SailorCire
Anda juga dapat merujuk ke jawaban ini untuk cara-cara menghasilkan kata sandi secara manual untuk/etc/shadow
NullUser
4
Menilai dari tag yang saya ambil bahwa Anda menggunakan RHEL, tetapi solusi ini harus bekerja dengan baik untuk semua distro.
Jika kata sandi root dilupakan, Anda dapat mem-boot dalam mode pengguna tunggal dan menggunakannya untuk mengubah kata sandi. Pendekatan ini dijelaskan dalam panduan langkah demi langkah Red Hat :
Masuk ke menu GRUB dan tekan e.
Pilih garis yang dimulai dengan kernel, tekan elagi.
Di akhir baris ini, masukkan single. Kemudian tekan ENTERdan boot darinya.
Anda pada akhirnya akan mendapatkan prompt tempat Anda bisa mengetik passwd rootdan mengubah kata sandi. Kemudian ketik rebootuntuk reboot sistem.
Ini hanya akan berfungsi jika Anda tidak memiliki boot passwd.
pradeepchhetri
1
Dan jika Anda tidak menggunakan / sbin / sulogin untuk shell pengguna tunggal (ini akan meminta kata sandi root).
James O'Gorman
Jika Anda dapat membuka sistem file, Anda dapat mengedit /boot/grub/grub.confuntuk menghapus kata sandi bootloader dan /etc/inittabmengubah shell pengguna tunggal menjadi sesuatu seperti / bin / sh (cc @pradeepchhetri)
Jawaban:
Berikut adalah beberapa cara yang dapat saya pikirkan, dari yang paling tidak mengganggu sampai yang paling mengganggu.
Tanpa Memulai Ulang
Dengan sudo: jika Anda memiliki
sudo
izin untuk menjalankanpasswd
, Anda dapat melakukan:Masukkan kata sandi Anda , lalu masukkan kata sandi baru untuk root dua kali. Selesai
Mengedit file : karya ini dalam kasus tidak mungkin Anda tidak memiliki penuh
sudo
akses, tetapi Anda lakukan memiliki akses ke mengedit/etc/{passwd,shadow}
. Buka/etc/shadow
, baik dengansudoedit /etc/shadow
, atau dengansudo $EDITOR /etc/shadow
. Ganti bidang kata sandi root (semua karakter acak antara titik dua dan ketiga:
) dengan bidang kata sandi pengguna Anda sendiri. Menyimpan. Lokal memiliki kata sandi yang sama dengan Anda. Masuk dan ubah kata sandi menjadi sesuatu yang lain.Ini yang mudah.
Reboot Diperlukan
Mode Pengguna Tunggal : Ini baru saja dijelaskan oleh Renan. Ini bekerja jika Anda bisa mendapatkan GRUB (atau boot loader Anda) dan Anda dapat mengedit baris perintah Linux. Tidak berfungsi jika Anda menggunakan Debian, Ubuntu, dan beberapa lainnya. Beberapa konfigurasi boot loader memerlukan kata sandi untuk melakukannya, dan Anda harus tahu itu untuk melanjutkan. Tanpa basa-basi:
kernel
ataulinux
.Sistem Anda akan boot dalam mode pengguna tunggal. Beberapa distribusi tidak akan meminta Anda untuk kata sandi root pada saat ini (yang berbasis Debian dan yang melakukannya). Anda root sekarang. Ubah kata sandi Anda:
dan
reboot
, atau, jika Anda tahu tingkat normal Anda, katakantelinit 2
(atau apa pun itu).Mengganti
init
: dangkal mirip dengan trik mode pengguna tunggal, dengan sebagian besar instruksi yang sama, tetapi membutuhkan kecakapan lebih banyak dengan baris perintah. Anda mem-boot kernel seperti di atas, tetapi alih-alihsingle
, Anda menambahkaninit=/bin/sh
. Ini akan berjalan/bin/sh
di tempatinit
, dan akan memberi Anda shell yang sangat awal dengan hampir tidak ada fasilitas. Pada titik ini, tujuan Anda adalah:passwd
berlari.passwd
perintah.Tergantung pada pengaturan khusus Anda, ini mungkin sepele (identik dengan instruksi untuk mode pengguna tunggal), atau sangat tidak sepele: memuat modul, menginisialisasi perangkat lunak RAID, membuka volume terenkripsi, mulai LVM, dan lain-lain. Tanpa
init
, Anda tidak menjalankan demon atau proses lain selain/bin/sh
anak-anaknya, jadi Anda benar-benar sendirian. Anda juga tidak memiliki kontrol pekerjaan, jadi berhati-hatilah dengan apa yang Anda ketik. Satu tempat salahcat
dan Anda mungkin harus reboot jika Anda tidak bisa keluar dari itu.Disk Penyelamatan : ini mudah. Boot disk penyelamat pilihan Anda. Pasang sistem file root Anda. Prosesnya tergantung pada bagaimana volume Anda berlapis, tetapi akhirnya bermuara pada:
Jelas,
$SOME_ROOT_DEV
apa pun nama perangkat blok yang ditetapkan untuk sistem file root Anda oleh disk penyelamat dan$EDITOR
merupakan editor favorit Anda (yang mungkin harus adavi
di sistem penyelamatan). Setelah itureboot
, izinkan mesin untuk boot secara normal; kata sandi root akan menjadi milik pengguna Anda sendiri. Masuk sebagai root dan ubah segera.Cara lain
Jelas, ada variasi yang tak terhitung jumlahnya di atas. Semuanya menjadi dua langkah:
sumber
Ini seharusnya bekerja pada hampir semua distro, saya pikir.
Jika Anda dapat mengakses partisi root dari sistem lain, mis. Live CD, Anda dapat sebagai root dari sana mengedit
/etc/shadow
; pertama kamu haruschmod u+w shadow
. Temukan entriroot
, mungkin yang pertama dan terlihat seperti ini:Hapus semua di antara dua titik dua pertama sehingga Anda berakhir dengan:
Lalu
chmod u-w shadow
. Anda sekarang dapat reboot sistem dan root tidak memiliki kata sandi. Anda cukup mengetikroot
di prompt login dan tidak akan meminta. Anda kemudian dapat menggunakanpasswd
untuk mengatur satu.Untuk ekstra hati-hati:
/etc/shadow
dulu.sumber
passwd
di lingkungan chroot dari live CD?/etc/shadow
Menilai dari tag yang saya ambil bahwa Anda menggunakan RHEL, tetapi solusi ini harus bekerja dengan baik untuk semua distro.
Jika kata sandi root dilupakan, Anda dapat mem-boot dalam mode pengguna tunggal dan menggunakannya untuk mengubah kata sandi. Pendekatan ini dijelaskan dalam panduan langkah demi langkah Red Hat :
kernel
, tekan elagi.single
. Kemudian tekan ENTERdan boot darinya.Anda pada akhirnya akan mendapatkan prompt tempat Anda bisa mengetik
passwd root
dan mengubah kata sandi. Kemudian ketikreboot
untuk reboot sistem.sumber
/boot/grub/grub.conf
untuk menghapus kata sandi bootloader dan/etc/inittab
mengubah shell pengguna tunggal menjadi sesuatu seperti / bin / sh (cc @pradeepchhetri)