Bagaimana kita dapat mengubah kata sandi root?


Jawaban:


63

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:

  1. Mulai ulang.
  2. Masukkan kata sandi waktu boot, jika ada.
  3. Masuk ke menu boot loader Anda.
  4. Jika mode pengguna tunggal tersedia, pilih itu (Debian menyebutnya 'Mode pemulihan').
  5. Jika tidak, dan Anda menjalankan GRUB:
    1. Sorot opsi boot normal Anda.
    2. Tekan euntuk masuk ke mode edit. Anda mungkin dimintai kata sandi GRUB di sana.
    3. Sorot garis yang dimulai dengan kernelatau linux.
    4. Tekan e.
    5. Tambahkan kata 'tunggal' di akhir. (Jangan lupa menambahkan spasi!)
    6. 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:

  1. Pasang volume root.
  2. Dapatkan passwdberlari.
  3. 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:

  1. Dapatkan akses root ke komputer (catch-22 - dan trik sebenarnya)
  2. Ubah kata sandi root entah bagaimana.

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?
CMCDragonkai

WRT "Ubah kata sandi root entah bagaimana", lihat di sini: unix.stackexchange.com/a/168422/25985
goldilocks

7

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 :

  1. Masuk ke menu GRUB dan tekan e.
  2. Pilih garis yang dimulai dengan kernel, tekan elagi.
  3. 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.


1
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)
NullUser
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.