Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

Sudo ใน Linux คืออะไรและวิธีใช้งาน

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

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

การเข้าใจสิทธิ์ผู้ใช้ของ Linux

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

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

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

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

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

Sudo และ Terminal

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

ไวยากรณ์ของ Sudo

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

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

"Su" ใน Sudo

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

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

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

Su USERNAME -c COMMAND

แทนที่ USERNAME ด้วยผู้ใช้ที่ต้องการให้รันคำสั่ง และ COMMAND ด้วยคำสั่ง Linux ที่คุณต้องการรัน

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

Su USER

แทนที่ USER ด้วยตัวตนบัญชีผู้ใช้ที่ต้องการ

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

ขีดจำกัดเวลาของ Sudo

ครั้งแรกที่คุณใช้คำสั่ง 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
  • หากคุณต้องการลบแพ็กเกจที่ติดตั้งจากเทอร์มินัล ใช้ sudo apt-get remove <package-name (อีกครั้งแทนที่ชื่อแพ็กเกจเฉพาะที่ต้องการ)

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