หากเราไม่ทราบรหัสผ่านรูทและไม่สามารถเข้าถึงเครื่องได้เราจะเปลี่ยนรหัสผ่านรูทได้อย่างไร
หากเราไม่ทราบรหัสผ่านรูทและไม่สามารถเข้าถึงเครื่องได้เราจะเปลี่ยนรหัสผ่านรูทได้อย่างไร
คำตอบ:
นี่คือวิธีที่ฉันสามารถนึกถึงจากการล่วงล้ำน้อยที่สุดไปจนถึงการล่วงล้ำที่สุด
ด้วย sudo:ถ้าคุณมีsudo
สิทธิ์ใช้passwd
งานคุณสามารถทำได้:
sudo passwd root
ป้อนรหัสผ่านของคุณจากนั้นป้อนรหัสผ่านใหม่สำหรับรูทสองครั้ง เสร็จสิ้น
แก้ไขไฟล์ : งานนี้ในกรณีที่ไม่น่าที่คุณไม่ได้มีเต็มรูปแบบsudo
การเข้าถึง แต่คุณทำ/etc/{passwd,shadow}
มีการเข้าถึงการแก้ไข เปิด/etc/shadow
ทั้งที่มีหรือsudoedit /etc/shadow
sudo $EDITOR /etc/shadow
แทนที่ฟิลด์รหัสผ่านของรูท (อักขระสุ่มทั้งหมดระหว่างโคลอนที่สองและสาม:
) ด้วยฟิลด์รหัสผ่านของผู้ใช้ของคุณเอง บันทึก ท้องถิ่นมีรหัสผ่านเดียวกันกับคุณ เข้าสู่ระบบและเปลี่ยนรหัสผ่านเป็นอย่างอื่น
สิ่งเหล่านี้เป็นสิ่งที่ง่าย
โหมดผู้ใช้คนเดียว : นี่เป็นเพียงการอธิบายโดย Renan มันทำงานได้ถ้าคุณสามารถไปที่ GRUB (หรือบูตโหลดเดอร์) และคุณสามารถแก้ไขบรรทัดคำสั่ง Linux ได้ มันไม่ทำงานถ้าคุณใช้ Debian, Ubuntu และอื่น ๆ การกำหนดค่าบูตโหลดเดอร์บางตัวต้องการรหัสผ่านในการทำเช่นนั้นและคุณต้องรู้ว่าต้องดำเนินการ โดยไม่ต้องกังวลใจเพิ่มเติม:
kernel
linux
ระบบของคุณจะบู๊ตในโหมดผู้ใช้คนเดียว การแจกแจงบางอย่างจะไม่ขอรหัสผ่านรูทของคุณ ณ จุดนี้ (Debian และ Debian-based ทำ) ตอนนี้คุณรูตแล้ว เปลี่ยนรหัสผ่านของคุณ:
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
และreboot
หรือถ้าคุณรู้ว่า runlevel ปกติของคุณพูดtelinit 2
(หรืออะไรก็ตามที่มันเป็น)
แทนที่init
: เผินๆคล้ายกับเคล็ดลับโหมดผู้ใช้คนเดียวด้วยคำแนะนำเดียวกันส่วนใหญ่ แต่ต้องใช้ความกล้าหาญมากขึ้นด้วยบรรทัดคำสั่ง คุณบูตเคอร์เนลของคุณดังกล่าวข้างต้น แต่แทนที่จะคุณเพิ่มsingle
init=/bin/sh
นี้จะทำงาน/bin/sh
ในสถานที่init
และจะทำให้คุณมีมากเปลือกต้นด้วยสิ่งอำนวยความสะดวกเกือบจะไม่มี ณ จุดนี้เป้าหมายของคุณคือ:
passwd
ทำงานpasswd
คำสั่งขึ้นอยู่กับการตั้งค่าเฉพาะของคุณสิ่งเหล่านี้อาจไม่สำคัญ (เหมือนกับคำแนะนำสำหรับโหมดผู้ใช้คนเดียว) หรือไม่สำคัญมาก: การโหลดโมดูลการเริ่มต้นซอฟต์แวร์ RAID การเปิดไดรฟ์ข้อมูลที่เข้ารหัสเริ่ม LVM และอื่น ๆ หากไม่มีinit
คุณจะไม่ได้ใช้dæmonsหรือกระบวนการอื่น ๆ แต่/bin/sh
รวมถึงลูก ๆ ของมันดังนั้นคุณจะสวยด้วยตัวคุณเอง คุณยังไม่มีการควบคุมงานดังนั้นจึงควรระวังสิ่งที่คุณพิมพ์ วางผิดที่หนึ่งcat
และคุณอาจต้องรีบูตถ้าคุณไม่สามารถออกไปได้
Rescue Disk : อันนี้ง่าย บูตดิสก์ช่วยเหลือที่คุณเลือก เมานต์ระบบไฟล์รูทของคุณ กระบวนการขึ้นอยู่กับว่าเลเยอร์ของคุณมีลำดับชั้นอย่างไร
# 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
เห็นได้ชัดว่า$SOME_ROOT_DEV
มีชื่ออุปกรณ์บล็อกใดถูกกำหนดให้กับระบบไฟล์รูทของคุณโดยดิสก์การช่วยเหลือและ$EDITOR
เป็นตัวแก้ไขที่คุณโปรดปราน (ซึ่งอาจต้องvi
อยู่ในระบบช่วยเหลือ) หลังจากนั้นreboot
อนุญาตให้เครื่องบูตตามปกติ รหัสผ่านของรูทจะเป็นของผู้ใช้ของคุณเอง เข้าสู่ระบบในฐานะ root และเปลี่ยนทันที
เห็นได้ชัดว่ามีการเปลี่ยนแปลงมากมายที่กล่าวมา พวกเขาทั้งหมดต้มลงไปสองขั้นตอน:
ฉันคิดว่ามันน่าจะใช้ได้กับ distro ใด ๆ
หากคุณสามารถเข้าถึงพาร์ติชันรูทจากระบบอื่นเช่นซีดีสดคุณสามารถแก้ไขได้จากที่/etc/shadow
นั่น chmod u+w shadow
แรกที่คุณต้อง ค้นหารายการroot
อาจเป็นรายการแรกและมีลักษณะดังนี้:
root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::
ลบทุกอย่างระหว่างโคลอนสองตัวแรกดังนั้นคุณจะได้:
root::15666:0:99999:7:::
chmod u-w shadow
แล้วก็ ตอนนี้คุณสามารถรีบูตระบบและรูทจะไม่มีรหัสผ่าน คุณสามารถพิมพ์root
ที่พรอมต์การเข้าสู่ระบบและจะไม่ถามใคร จากนั้นคุณสามารถใช้passwd
เพื่อตั้งค่าหนึ่ง
ที่จะต้องระมัดระวังเป็นพิเศษ:
/etc/shadow
แรกpasswd
ในสภาพแวดล้อม chroot จากไลฟ์ซีดีหรือไม่?
เมื่อพิจารณาจากแท็กที่ฉันคิดว่าคุณกำลังใช้ RHEL แต่โซลูชันนี้ควรใช้งานได้ดีสำหรับ distros ทั้งหมด
หากลืมรหัสผ่านรูทคุณสามารถบูตในโหมดผู้ใช้คนเดียวและใช้รหัสนี้เพื่อเปลี่ยนรหัสผ่าน วิธีการนี้อธิบายไว้ในคำแนะนำทีละขั้นตอนของ Red Hat :
kernel
กดeอีกครั้งsingle
ที่ปลายของสายนี้ที่ใส่ จากนั้นกดENTERและboot จากมันในที่สุดคุณจะได้รับพรอมต์ซึ่งคุณสามารถพิมพ์passwd root
และเปลี่ยนรหัสผ่าน จากนั้นพิมพ์reboot
เพื่อรีบูทระบบ
/boot/grub/grub.conf
เพื่อลบรหัสผ่าน bootloader และ/etc/inittab
เปลี่ยนเชลล์ผู้ใช้คนเดียวให้เป็นแบบ / bin / sh (cc @pradeepchhetri)