พิจารณาการ์ตูนด้านบนจากคอมมิค XKCD ที่ยอดเยี่ยม คนเกียจคร้านบนเก้าอี้ต้องการให้เพื่อนทำแซนด์วิชให้ แต่พวกเขาไม่มีอำนาจที่จะทำ นั่นคือจนกว่าเขาจะเรียกใช้คำสั่ง sudo อันยิ่งใหญ่ หลังจากนั้นจะทำแซนวิชไม่ทางใดก็ทางหนึ่ง
ในขณะที่ลองใช้ sudo กับบุคคลในชีวิตจริงอาจไม่ได้ผล แต่เป็นคำสั่งวิเศษที่จะผ่านทุกสิ่งกีดขวางบนถนนในโลกของ Linux sudo คืออะไร? ทำไมมันถึงมีอยู่จริง? คำตอบอยู่ที่วิธีที่ Linux จัดการกับการอนุญาต
การทำความเข้าใจการอนุญาตของผู้ใช้ Linux
Linux ถือเป็นระบบปฏิบัติการที่ปลอดภัยเนื่องจากวิธีจัดการกับการอนุญาต แม้ว่าระบบปฏิบัติการ เช่น macOS (ซึ่งใช้บรรพบุรุษร่วมกับ Linux) และ Windows ในตอนนี้จะเหมือนกับ Linux มากกว่าในเรื่องนี้ ระบบปฏิบัติการโอเพ่นซอร์สยังคงมีความพิเศษอยู่บ้าง
การทำความเข้าใจวิธีที่ Linux จัดการกับการอนุญาตทำให้ ง่ายกว่ามากในการทำความเข้าใจคำสั่ง sudo ระบบปฏิบัติการสมัยใหม่ทั้งหมดมีระดับสิทธิ์ผู้ใช้ "ผู้ดูแลระบบ" หรือ "รูท" หากคุณมีบัญชีผู้ดูแลระบบหรือรูท คุณสามารถเปลี่ยนการตั้งค่า ลบข้อมูล และโดยทั่วไปจะทำอะไรก็ได้กับคอมพิวเตอร์
ซึ่งรวมถึงสิ่งที่คุณอาจไม่ควรทำซึ่งอาจทำให้ข้อมูลสูญหายหรือจำเป็นต้องล้างข้อมูลและติดตั้งใหม่ทั้งหมด
Linux ไม่ ไม่ให้สิทธิ์ระดับผู้ใช้รูทเป็นค่าเริ่มต้น บัญชีของคุณไม่สามารถเข้าถึงส่วนที่ละเอียดอ่อนของระบบได้โดยไม่ยกระดับการอนุญาตของคุณ นั่นหมายความว่าระบบจะขอให้คุณป้อนรหัสผ่านผู้ดูแลระบบเมื่อคุณต้องการทำอะไรที่ไม่ธรรมดาโดยใช้อินเทอร์เฟซแบบกราฟิก
อย่างไรก็ตาม เมื่อคุณต้องการใช้บรรทัดคำสั่ง เทอร์มินัล เพื่อทำสิ่งต่างๆ ให้เสร็จสิ้น sudo นั้นปลอดภัยที่สุด และวิธีที่มีประสิทธิภาพที่สุดในการดำเนินการ
Sudo และเทอร์มินัล
การให้สิทธิ์ในระดับสูงแก่ตัวคุณเองใน Linux มี 2 วิธี หนึ่งคือการเข้าสู่ระบบในฐานะผู้ใช้รูทอย่างถาวร ปัญหาของสิ่งนี้คือ ใครก็ตามที่สามารถเข้าถึงคอมพิวเตอร์สามารถสร้างความหายนะได้ และแม้แต่คุณก็สามารถทำมันได้โดยบังเอิญ Sudo ยกระดับการอนุญาตของคุณในช่วงเวลาสั้นๆ เพื่อรันคำสั่งเฉพาะที่ตามมา
Sudo Syntax
ไวยากรณ์ของ Sudo (รูปแบบของคำสั่ง) นั้นเรียบง่าย เพียงพิมพ์ “sudo” ตามด้วยคำสั่งที่คุณต้องการดำเนินการ
ตัวอย่างเช่น “sudo apt-get update” จะอัปเดตที่เก็บแอปทั้งหมดที่แสดงในรายการที่เกี่ยวข้อง ไฟล์. หากคุณพยายามเรียกใช้โดยไม่ใช้ sudo คุณจะได้รับข้อความแสดงข้อผิดพลาดที่แจ้งว่าคุณไม่ได้รับอนุญาต อนึ่ง นี่เป็นคำสั่ง sudo แรกที่คุณต้องการเรียกใช้หลังจากติดตั้ง Linux distro ที่คุณชื่นชอบใหม่
คำว่า “Su” ใน Sudo
คำว่า “su” ใน sudo นั้นย่อมาจาก “superuser” และเป็นคำสั่งแบบสแตนด์อโลน คำสั่ง "su" ให้คุณเปลี่ยนสิทธิ์ของผู้ใช้ที่ sudo ยกระดับคุณได้
แม้ว่า sudo จะยกระดับคุณให้เป็นรูทชั่วคราว su เปลี่ยนคุณเป็นผู้ใช้รายอื่นที่มีสิทธิ์ที่เหมาะสม นั่นอาจดูเหมือนเป็นความแตกต่างที่ไม่สำคัญ แต่มีเหตุผลที่ดีที่จะเปลี่ยนบัญชีที่ sudo ยกระดับผู้ใช้ให้เป็น
ประการแรก การเปลี่ยนบัญชีหมายความว่าผู้ใช้ทั่วไปไม่ทราบรหัสผ่านรูท ประการที่สอง มีบันทึกของคำสั่ง sudo ทั้งหมด ซึ่งหมายความว่าผู้ดูแลระบบ (รูท) สามารถค้นหาว่าใครเป็นผู้ออกคำสั่ง su
ไวยากรณ์สำหรับ su นั้นเหมือนกับ sudo:
Su USERNAME -c COMMAND
แทนที่ USERNAME ด้วยผู้ใช้ที่ต้องการเพื่อเรียกใช้คำสั่งและ COMMAND ด้วยคำสั่ง Linux ที่คุณต้องการดำเนินการ
ถ้า คุณต้องการเรียกใช้หลายคำสั่งในฐานะผู้ใช้อื่น เพียงใช้:
Su USER
แทนที่ USER ด้วยข้อมูลประจำตัวของบัญชีผู้ใช้ที่ต้องการ
หากคุณใช้ su เอง Linux จะสลับไปยังบัญชีผู้ใช้อื่นจนกว่าคุณจะใช้คำสั่ง “exit” สิ่งสำคัญคือต้องจำผู้ใช้รายนี้หรือผู้ใช้รายถัดไปเพื่อเข้าถึงเทอร์มินัลในเซสชันนั้นจะยังคงมีสิทธิ์ระดับสูง นี่คือเหตุผลที่ใช้ sudo มากกว่า su ดีกว่า
Sudo Time Limit
ในครั้งแรกที่คุณใช้คำสั่ง sudo คุณ จะต้องใส่รหัสผ่าน จากนั้น รหัสผ่านนั้นจะมีอายุ 15 นาที คุณสามารถเปลี่ยนค่าเริ่มต้นนี้ได้โดยเรียกใช้คำสั่ง sudo visudoและเปลี่ยน “timestamp_timeout=” เป็นค่าที่ยาวขึ้นหรือสั้นลง อย่างไรก็ตาม เราไม่แนะนำให้คุณทำเช่นนี้เว้นแต่คุณจะมีเหตุผลที่ดีที่จะขยายหรือย่อระยะเวลาที่รหัสผ่าน sudo ยังคงใช้ได้
Sudo Option Switches
แม้ว่าไวยากรณ์ sudo จะเป็น ง่าย ๆ สวิตช์หลายตัวน่ารู้ คำสั่งเหล่านี้เปิดข้อมูลเพิ่มเติมหรือช่วยคุณควบคุมเซสชัน sudo:
มีตัวเลือกอื่น ๆ อีกมากมายใน sudo และคุณสามารถดูได้ทั้งหมดโดยใช้สวิตช์ -h ตัวแรกที่แสดงด้านบน
ภาพหน้าจอด้านบนคือสิ่งที่ให้ผลลัพธ์เมื่อคุณใช้ ตัวเลือกความช่วยเหลือ
คำสั่ง Sudo ที่มีประโยชน์
ผู้ใช้ Linux ทุกคนควรรู้คำสั่งใดบ้างที่เปิดใช้งานโดย sudo เราได้ครอบคลุมถึงการอัปเดต sudo apt-get แล้ว แต่โปรดทราบว่า:
คำสั่งเหล่านี้น่าจะเป็นคำสั่ง sudo แรกที่คุณต้องใช้ แต่ดังที่คุณได้เรียนรู้ข้างต้น คำสั่งใดๆ ก็ตามสามารถทำตาม sudo ได้ แต่คุณควรใช้เฉพาะคำสั่งที่ต้องการสิทธิพิเศษที่สูงกว่าเท่านั้น