วันจันทร์, กรกฎาคม ๒๓, ๒๕๕๐

ห๊ะ.. อะไรนะ Ubuntu ไม่มี พาสเวิร์ด root!!!

ufonik@ufo-base-ubuntu:~$ su
Password:
su: Authentication failure
หลังจากพาสเวิร์ดทุกตัวที่นึกออกและเคยใช้ถูกใส่ มาขอความช่วเหลือจากเพื่อนบ้านดีกว่า
ก่อนอื่นจะเล่าที่มาของ root ใน ลินุกซ์ และ คำสั่ง su เล็กๆ
root (ราก - นึกถึงต้นไม่กลับหัว รากจะอยู่บนสุด) เป็นยูเซอร์หนึ่ง ใน ลินุกซ์ ที่ทำได้ทุกอย่าง (ลบไฟล์ที่ชาวบ้านลบไม่ได้) เทียบได้คล้ายยูเซอร์ที่ชื่อว่า Administrator ใน Windows(tm) น่ะแหล่ะ
โดยปกติ เวลาล๊อกอินในลินุกซ์ จะให้ใช้ชื่ออื่นที่ไม่ใช่ root ล๊อกอินเข้ามา เพื่อที่จะใด้ไม่ทำไฟล์สำคัญๆในระบบเสียหายได้โดยบังเอิญ

แล้วทีนี้ พอจำทำงานที่ต้องแก้ไฟล์ที่สำคัญมากๆ เช่นสมมติลงโปรแกรมใหม่ ต้องได้รับสิทธิ เป็น root เท่านั้นถึงจะลงได้

วิธีหนึ่งจะทำได้ ก็คือ logout(คำสั่ง exit) ก่อนแล้ว login เข้ามาเป็น root แล้วทำงาน
วิธีก็ได้ แต่มันจะไม่สะดวก เหตุผลสั้นๆ ก็คือ เปิดงานไว้บนโต๊ะเยอะแยะ ต้องปิดงานหมด เพื่อจะเอาปฏิทินหใม่มาตั้งอย่างเดียว ก็ไม่คุ้ม

เลยมีคำสั่ง su (super user) ตามด้วย พาสเวิร์ด
จากนั้น ก็จะแปลงร่างเป็น root วางปฏิทินได้ทันที ไม่ต้องเก็บโต๊ะก่อน

ทีนี้ ในอูบุนตู เล็งเห็น ถึงความเป็นเสือกระดาษของ root ที่ใครๆ ก็มาขอใช้ชื่อไปทำนู่นทำนี้ แต่ตัวเองจริงๆแล้วก็ไม่ได้ทำอะไร
อูบุนตูเลยเอายูเซอร์ root ออกไปจากระบบซะ (ลินุกซ์ ทั่วไปจะต้องบังคับให้มี ยูเซอร์ root เสมอ ถ้าจะสร้าง ยูเซอร์อื่น ก็ค่อยเอายูเซอร์นี้ไปสร้างเอา) แต่ คำสั่ง su ยังอยู่ เอาไว้แปลงร่าง เป็น คนอื่นๆ ไม่จำเป็นว่า แปลงเป็น root อย่างเดียว

ทีนี้ เค้าเลยสร้างคำสั่งใหม่ คล้ายๆ su คือคำสั่ง sudo

sudo ไม่ได้แปลง ร่าง แต่ขอยืมมาแค่อำนาจในการทำงานเท่านั้น (ซึงมันก็ต้องใช้แค่อำนาจนั่นแหละ)

ฉะนั้น ถ้าเราต้องการแปลงร่างจริงๆ ก็ใช้สองคำสั่งคู่กัน
ufnik@ufo-base-ubuntu:~$ sudo su
root@ufo-base-ubuntu:/home/ufonik#
กลายเป็น root แล้ว สังเกตจาก $ เปลี่ยนเป็น #

ถ้าจะแปลงร่างเป็นคนอื่นก็ใส่ ยูเซอร์เนมไป

ufnik@ufo-base-ubuntu:~$ sudo su beckham
root@ufo-base-ubuntu:/home/ufonik#
เท่านี้ก็เป็น beckham ได้ โดยที่ไม่ต้อง logout จากระบบให้เสียเวลา

ไม่มีความคิดเห็น: