Sudo ใน Linux คืออะไรและใช้งานอย่างไร

พิจารณาการ์ตูนด้านบนจากคอมมิคXKCD ที่ยอดเยี่ยม (XKCD)คนเกียจคร้านบนเก้าอี้ต้องการให้เพื่อนทำแซนด์วิชให้ แต่พวกเขาไม่มีอำนาจที่จะทำ นั่นคือจนกว่าเขาจะเรียกใช้คำสั่ง sudo อันยิ่งใหญ่ หลังจากนั้นจะทำแซนวิชไม่ทางใดก็ทางหนึ่ง 

ในขณะที่พยายาม sudo กับบุคคลในชีวิตจริงอาจจะไม่ได้ผล แต่เป็นคำสั่งวิเศษที่จะผ่านทุกสิ่งกีดขวางบนถนนในโลกของLinux sudo คืออะไร? ทำไมมันถึงมีอยู่จริง? คำตอบอยู่ที่วิธีที่Linuxจัดการกับการอนุญาต

ทำความเข้าใจสิทธิ์ของผู้ใช้ Linux(Linux User Permissions)

ลินุกซ์(Linux)ถือเป็นระบบปฏิบัติการที่ปลอดภัยเนื่องจากวิธีจัดการกับการอนุญาต ในขณะที่ระบบปฏิบัติการเช่น macOS (ซึ่งใช้บรรพบุรุษร่วมกับLinux ) และWindowsนั้นตอนนี้เหมือนกับLinux มากกว่า ในเรื่องนี้ ระบบปฏิบัติการ โอเพ่นซอร์ส(Open Source)ยังคงมีความพิเศษอยู่บ้าง

การทำความเข้าใจวิธีที่ลีนุกซ์จัดการกับการอนุญาตช่วยให้เข้าใจคำสั่ง sudo ได้ง่ายขึ้นมาก ระบบปฏิบัติการสมัยใหม่ทั้งหมดมีระดับสิทธิ์ผู้ใช้ "ผู้ดูแลระบบ" หรือ "รูท" หากคุณมีบัญชีผู้ดูแลระบบหรือรูท คุณสามารถเปลี่ยนการตั้งค่า ลบข้อมูล และโดยทั่วไปจะทำอะไรก็ได้กับคอมพิวเตอร์ 

ซึ่งรวมถึงสิ่งที่คุณอาจไม่ควรทำซึ่งอาจทำให้ข้อมูลสูญหายหรือจำเป็นต้องล้างข้อมูลและติดตั้งใหม่ทั้งหมด

Linuxไม่ได้กำหนดสิทธิ์ระดับผู้ใช้รูทเป็นค่าเริ่มต้น บัญชีของคุณไม่สามารถเข้าถึงส่วนที่ละเอียดอ่อนจริงๆ ของระบบได้ หากไม่ยกระดับการอนุญาตของคุณ ซึ่งหมายความว่าระบบจะขอให้คุณป้อนรหัสผ่านผู้ดูแลระบบเมื่อคุณต้องการทำอะไรที่ไม่ธรรมดาโดยใช้อินเทอร์เฟซแบบกราฟิก 

อย่างไรก็ตาม เมื่อคุณต้องการใช้ บรรทัดคำสั่ง Terminalเพื่อทำสิ่งต่างๆ ให้เสร็จสิ้น sudo เป็นวิธีที่ปลอดภัยและมีประสิทธิภาพมากที่สุด

Sudo และเทอร์มินัล

มีสองวิธีในการให้สิทธิ์ในระดับสูงแก่ตัวคุณเองในLinux หนึ่งคือการเข้าสู่ระบบในฐานะผู้ใช้รูทอย่างถาวร ปัญหาของสิ่งนี้คือ ใครก็ตามที่อาจเข้าถึงคอมพิวเตอร์สามารถสร้างความหายนะได้ และแม้แต่คุณก็สามารถทำมันได้โดยบังเอิญ Sudoยกระดับการอนุญาตของคุณในช่วงเวลาสั้น ๆ เพื่อดำเนินการคำสั่งเฉพาะที่ตามมา

ไวยากรณ์ Sudo

ไวยากรณ์ของ Sudo (รูปแบบของคำสั่ง) นั้นเรียบง่าย เพียง(Simply)พิมพ์ “sudo” ตามด้วยคำสั่งที่คุณต้องการดำเนินการ

ตัวอย่างเช่น "sudo apt-get update" จะอัปเดตที่เก็บแอปทั้งหมดที่ระบุไว้ในไฟล์ที่เกี่ยวข้อง หากคุณพยายามเรียกใช้โดยไม่ใช้ sudo คุณจะได้รับข้อความแสดงข้อผิดพลาดที่แจ้งว่าคุณไม่ได้รับอนุญาต อนึ่ง โดยทั่วไปแล้ว นี่เป็นคำสั่ง sudo แรกที่คุณต้องการเรียกใช้หลังจากติดตั้งLinux distro ที่คุณโปรดปรานใหม่ 

“ซู” ในภาษาซูโด

“su” ใน sudo ย่อมาจาก “superuser” และเป็นคำสั่งแบบสแตนด์อโลน คำสั่ง “su” ให้คุณเปลี่ยนสิทธิ์ของผู้ใช้ที่ sudo ยกระดับคุณได้ 

แม้ว่า sudo จะยกระดับคุณให้เป็นรูทชั่วคราว su เปลี่ยนคุณเป็นผู้ใช้รายอื่นที่มีสิทธิ์ที่เหมาะสม นั่นอาจดูเหมือนเป็นความแตกต่างที่ไม่สำคัญ แต่มีเหตุผลที่ดีที่จะเปลี่ยนบัญชีที่ sudo ยกระดับผู้ใช้ให้เป็น 

ก่อนอื่น(First)การเปลี่ยนบัญชีหมายความว่าผู้ใช้ทั่วไปไม่ทราบรหัสผ่านรูท ประการที่สอง มีบันทึกของคำสั่ง sudo ทั้งหมด ซึ่งหมายความว่าผู้ดูแลระบบ (รูท) สามารถค้นหาว่าใครเป็นผู้ออกคำสั่ง su

ไวยากรณ์สำหรับ su นั้นเหมือนกับ sudo:

Su USERNAME -c COMMAND

แทนที่ USERNAME(Replace USERNAME)ด้วยผู้ใช้ที่ต้องการเพื่อเรียกใช้คำสั่งและCOMMANDด้วย คำสั่ง Linux ที่ คุณต้องการดำเนินการ

หากคุณต้องการเรียกใช้หลายคำสั่งในฐานะผู้ใช้อื่น ให้ใช้:

ซู USER(Su USER)

แทนที่ USER(Replace USER)ด้วยข้อมูลประจำตัวของบัญชีผู้ใช้ที่ต้องการ

หากคุณใช้ su เองLinuxจะสลับไปยังบัญชีผู้ใช้อื่นจนกว่าคุณจะใช้คำสั่ง “exit” สิ่งสำคัญคือต้องจำผู้ใช้รายนี้หรือผู้ใช้รายถัดไปเพื่อเข้าถึงเทอร์มินัลในเซสชันนั้นจะยังคงมีสิทธิ์ระดับสูง ด้วยเหตุนี้จึงดีกว่าการใช้ sudo มากกว่า su

เวลาจำกัดของซูโด

ครั้งแรกที่คุณใช้คำสั่ง sudo คุณจะต้องป้อนรหัสผ่าน จากนั้น รหัสผ่านนั้นจะมีอายุ 15 นาที คุณสามารถเปลี่ยนค่าเริ่มต้นนี้ได้โดยเรียกใช้คำสั่งsudo visudoและเปลี่ยน "timestamp_timeout=" เป็นค่าที่ยาวขึ้นหรือสั้นลง อย่างไรก็ตาม เราไม่แนะนำให้คุณทำเช่นนี้ เว้นแต่คุณจะมีเหตุผลที่ดีที่จะขยายหรือย่นระยะเวลาที่รหัสผ่าน sudo ยังคงใช้ได้

สวิตช์ตัวเลือก Sudo

แม้ว่าไวยากรณ์ sudo จะเรียบง่าย แต่สวิตช์หลายตัวก็น่ารู้ คำสั่งเหล่านี้เปิดข้อมูลเพิ่มเติมหรือช่วยคุณควบคุมเซสชัน sudo:

  • -hแสดงข้อมูลไวยากรณ์และคำสั่งสำหรับ sudo
  • -Vแสดงเวอร์ชันปัจจุบันสำหรับ sudo บนเครื่องของคุณ
  • -vรีเฟรชการจำกัดเวลา sudo รีสตาร์ทนาฬิกา
  • -lแสดงรายการสิทธิ์ของผู้ใช้
  • -kฆ่าเซสชัน sudo ปัจจุบันทันที โดยลบสิทธิ์ระดับสูง

มีตัวเลือกอื่น ๆ อีกมากมายใน sudo และคุณสามารถดูได้ทั้งหมดโดยใช้สวิตช์ -h ตัวแรกที่แสดงด้านบน

ภาพหน้าจอด้านบนคือสิ่งที่ส่งผลเมื่อคุณใช้ตัวเลือกความช่วยเหลือ

คำสั่ง Sudo ที่มีประโยชน์

คำสั่งใดที่เปิดใช้งานโดย sudo ผู้ใช้ Linux ทุกคนควร รู้ เราได้กล่าวถึง sudo apt-get update แล้ว แต่โปรดทราบถึงสิ่งเหล่านี้ด้วย:

  • Sudo apt-get upgradeจะอัพเกรดแพ็คเกจที่ติดตั้งทั้งหมด
  • Sudo apt-get install <package-name>ติดตั้งซอฟต์แวร์ที่คุณเลือก เพียงเปลี่ยนชื่อแพ็คเกจเป็นชื่อที่คุณต้องการติดตั้ง
  • หากคุณไม่ทราบชื่อแพ็กเกจ ให้ใช้dpkg –list(dpkg –list)
  • หากคุณต้องการลบแพ็คเกจที่ติดตั้งออกจากเทอร์มินัล ให้ใช้sudo apt-get remove <package-name (แทนที่ชื่อแพ็คเกจเฉพาะที่เป็นปัญหาอีกครั้ง)

คำสั่งเหล่านี้น่าจะเป็นคำสั่ง sudo แรกที่คุณต้องใช้ แต่ดังที่คุณได้เรียนรู้ข้างต้น คำสั่งใดๆ ก็ตามสามารถทำตาม sudo ได้ แต่คุณควรใช้เฉพาะคำสั่งที่ต้องการสิทธิพิเศษที่สูงกว่าเท่านั้น



About the author

ฉันเป็นผู้เชี่ยวชาญด้านการสนับสนุนลูกค้า windows 10/11/10 ที่มีประสบการณ์มากกว่า 5 ปี ฉันยังเป็นนักเล่นเกมตัวยงในช่วงไม่กี่ปีที่ผ่านมาและมีความสนใจอย่างมากใน xbox One จุดสนใจปัจจุบันของฉันคือการช่วยเหลือลูกค้าเกี่ยวกับปัญหาที่เกิดขึ้นกับระบบ windows 10 หรือ Windows 11 บ่อยครั้งผ่านการใช้เครื่องมือบริการลูกค้าของเรา เช่น การสนับสนุนคอลเซ็นเตอร์และความช่วยเหลือออนไลน์



Related posts