รหัสผ่านของ root หรือ root password เป็นสิ่งสำคัญอย่างยิ่งในลินุกซ์ เพราะการแก้ไขทุกอย่างในลินุกซ์ต้องเข้าเป็น root ก่อนถึงจะทำได้ การลืมรหัสผ่านจึงทำให้เราไม่สามารถแก้ไขอะไรได้เลยในลินุกซ์
บทความนี้แนะนำวิธีหนึ่งที่สามารถแก้ไขปัญหาเมื่อลืมรหัสผ่านของ root ได้ แต่ต้องมีการรีบู๊ตเครื่อง ซึ่งทำให้เวลาแก้ไขระบบไม่สามารถใช้งานได้ โดยตัวอย่างในบทความนี้จะทดสอบบน Fedora 9
วิธีที่แนะนำคือการเข้าสู่โหมด single user ซึ่งจะเป็นโหมดที่ใช้ในการแก้ไขปัญหาหรือบำรุงรักษาเครื่อง ตัวอย่างอื่นๆ ที่ใช้โหมด single user ก่อนคือการสำรองข้อมูลแบบเต็มรูปแบบ (full backup)
คำแนะนำ ถ้าระบบยังใช้งานได้อยู่ตามปกติ ให้ทำหลังจากเลิกการใช้งานแล้ว
การเข้าสู่โหมด single user
วิธีการเข้านั้นทำได้โดยต้องรีบู๊ตเครื่อง แต่ถ้าเราลืมรหัสผ่านของ root เราก็ไม่สามารถใช้คำสั่ง shutdown เพื่อทำการรีบู๊ตได้ วิธีหนึ่งที่ทำได้คือที่หน้าจอคอนโซลของเครื่องที่เราต้องการแก้ไข แล้วกดปุ่ม [Ctrl-Alt-Delete] โดยดีฟอลต์แล้ว การกดปุ่มสามปุ่มพร้อมกันนี้เป็นการสั่งให้รีบู๊ตเครื่อง แต่ถ้าเราไปปิดคุณสมบัตินี้ออกไป [ปรับแต่งเครื่องหลังจากติดตั้ง Fedora 9 – แก้ไขคอนโซล] จะเหลืออยู่วิธีเดียวคือต้องกดปุ่มปิดเครื่อง แล้วเปิดขึ้นมาใหม่
ขณะที่บู๊ตเครื่องเมื่อมีข้อความ “Press any key to enter the menu” ให้กดปุ่มอะไรก็ได้เพื่อเข้าสู่หน้าจอเมนู GRUB ซึ่งเป็นโปรแกรม boot loader โดยดีฟอลต์ของลินุกซ์
ตัวอย่างหน้าจอเมนูของ GRUB
ในหน้าจอเมนู GRUB กดปุ่ม ‘e‘ เพื่อเข้าสู่เมนูย่อยเพื่อการแก้ไขค่าคอนฟิกสำหรับการบู๊ตเครื่อง
ตัวอย่างหน้าจอเมนูย่อยของ GRUB เพื่อการแก้ไขค่าคอนฟิก
ในหน้าจอเมนูย่อยจะมีอยู่สามบรรทัด ให้เลือกบรรทัดที่ขึ้นต้นด้วยคำว่า kernel แล้วกดปุ่ม ‘e‘ อีกครั้ง จะเข้าสู่ shell ของ GRUB ซึ่งจะอนุญาตให้เราแก้ไขค่าคอนฟิกได้ ให้พิมพ์คำว่า single ต่อท้ายบรรทัดลงไปแล้วกดปุ่ม [ Enter ] หน้าจอจะกลับมาที่เมนูย่อยอีกครั้ง กดปุ่ม ‘b‘ เพื่อการบู๊ตเครื่องด้วยค่าคอนฟิกใหม่
ตัวอย่างการเพิ่มคำว่า single ต่อท้าย
เครื่องก็จะบู๊ตไปตามปกติ แต่จะรันโปรแกรมเฉพาะเพื่อให้เครื่องทำงานได้เท่านั้น เช่น mount disk ขึ้นมา และเมื่อบู๊ตเสร็จจะขึ้น root shell prompt ให้เราสามารถพิมพ์คำสั่งต่างๆ ได้เลย โดยไม่จำเป็นต้อง login แต่อย่างใด
ตัวอย่าง root shell prompt ในโหมด single user
เราสามารถใช้คำสั่ง passwd เพื่อแก้ไขรหัสผ่านของ root ได้เลย
ตัวอย่างการใช้คำสั่ง passwd เพื่อเปลี่ยนรหัสผ่านของ root
[root@server /]# passwd root Changing password for user root. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
หลังจากแก้ไขรหัสผ่านเรียบร้อย วิธีการกลับสู่โหมดการทำงานของเครื่องปกติ ให้พิมพ์คำสั่ง exit หรือกดปุ่ม [Ctrl-D] เพื่อออกสู่โหมด single user เครื่องจะรันโปรแกรมต่างๆ ขึ้นมา สุดท้ายจะขึ้น login เหมือนเดิม
[root@server /]# exit Bringing up loopback interface: [ OK ] Bringing up interface eth0: [ OK ] Starting system logger: [ OK ] ...