8 วิธีในการปรับแต่งและตั้งค่า Sudo บน Ubuntu
เช่นเดียวกับสิ่งส่วนใหญ่บน Linux คำสั่ง sudo สามารถกำหนดค่าได้อย่างมาก คุณสามารถให้ sudo รันคำสั่งเฉพาะโดยไม่ต้องขอรหัสผ่าน จำกัด ผู้ใช้เฉพาะคำสั่งที่ได้รับอนุมัติเท่านั้นคำสั่งบันทึกการทำงานที่เรียกใช้ด้วย sudo และอื่น ๆ.
พฤติกรรมของคำสั่ง sudo นั้นควบคุมโดยไฟล์ / etc / sudoers บนระบบของคุณ คำสั่งนี้จะต้องแก้ไขด้วยคำสั่ง visudo ซึ่งดำเนินการตรวจสอบไวยากรณ์เพื่อให้แน่ใจว่าคุณจะไม่ทำลายไฟล์โดยไม่ตั้งใจ.
ระบุผู้ใช้ที่มีสิทธิ์ Sudo
บัญชีผู้ใช้ที่คุณสร้างขณะติดตั้ง Ubuntu ถูกทำเครื่องหมายเป็นบัญชีผู้ดูแลระบบซึ่งหมายความว่าสามารถใช้ sudo ได้ บัญชีผู้ใช้เพิ่มเติมใด ๆ ที่คุณสร้างหลังจากการติดตั้งอาจเป็นบัญชีผู้ดูแลระบบหรือบัญชีผู้ใช้มาตรฐาน - บัญชีผู้ใช้มาตรฐานไม่ได้รับอนุญาต sudo.
คุณสามารถควบคุมประเภทบัญชีผู้ใช้แบบกราฟิกจากเครื่องมือบัญชีผู้ใช้ของอูบุนตู หากต้องการเปิดคลิกชื่อผู้ใช้ของคุณบนแผงควบคุมและเลือกบัญชีผู้ใช้หรือค้นหาบัญชีผู้ใช้ในเส้นประ.
ทำให้ Sudo ลืมรหัสผ่าน
ตามค่าเริ่มต้น sudo จะจดจำรหัสผ่านของคุณเป็นเวลา 15 นาทีหลังจากที่คุณพิมพ์ นี่คือเหตุผลที่คุณต้องพิมพ์รหัสผ่านของคุณเพียงครั้งเดียวเมื่อสั่งงานหลายคำสั่งด้วย sudo อย่างรวดเร็ว หากคุณกำลังจะให้คนอื่นใช้คอมพิวเตอร์ของคุณและคุณต้องการให้ sudo ขอรหัสผ่านเมื่อมันทำงานต่อไปให้รันคำสั่งต่อไปนี้แล้ว sudo จะลืมรหัสผ่านของคุณ:
sudo -k
ขอรหัสผ่านเสมอ
หากคุณต้องการรับการแจ้งเตือนทุกครั้งที่คุณใช้ sudo - ตัวอย่างเช่นถ้าคนอื่นเข้าถึงคอมพิวเตอร์ของคุณเป็นประจำคุณสามารถปิดใช้งานพฤติกรรมการจำรหัสผ่านทั้งหมด.
การตั้งค่านี้เช่นเดียวกับการตั้งค่า sudo อื่น ๆ อยู่ในไฟล์ / etc / sudoers รันคำสั่ง visudo ในเทอร์มินัลเพื่อเปิดไฟล์สำหรับแก้ไข:
sudo visudo
คำสั่งนี้จะใช้ค่าเริ่มต้นเป็นตัวแก้ไขนาโนที่ใช้งานง่ายแทนการใช้ตัวแก้ไข vi ดั้งเดิมบน Ubuntu.
เพิ่มบรรทัดต่อไปนี้ใต้บรรทัดค่าเริ่มต้นอื่น ๆ ในไฟล์:
ค่าเริ่มต้น timestamp_timeout = 0
กด Ctrl + O เพื่อบันทึกไฟล์จากนั้นกด Ctrl + X เพื่อปิดนาโน ตอนนี้ Sudo จะขอให้คุณใส่รหัสผ่านเสมอ.
เปลี่ยนการหมดเวลารหัสผ่าน
หากต้องการตั้งค่าการหมดเวลาของรหัสผ่านที่แตกต่างกัน - อย่างใดอย่างหนึ่งที่ยาวกว่าเช่น 30 นาทีหรือสั้นกว่าเช่น 5 นาที - ทำตามขั้นตอนข้างต้น แต่ใช้ค่าที่แตกต่างกันสำหรับ timestamp_timeout จำนวนที่สอดคล้องกับจำนวนนาที sudo จะจำรหัสผ่านของคุณสำหรับ หากต้องการให้ sudo จำรหัสผ่านของคุณเป็นเวลา 5 นาทีให้เพิ่มบรรทัดต่อไปนี้:
ค่าเริ่มต้น timestamp_timeout = 5
ไม่ขอรหัสผ่าน
คุณยังสามารถให้ sudo ไม่ขอรหัสผ่านได้ตราบใดที่คุณลงชื่อเข้าใช้ทุกคำสั่งที่คุณนำหน้าด้วย sudo จะทำงานด้วยการอนุญาตรูท หากต้องการทำสิ่งนี้ให้เพิ่มบรรทัดต่อไปนี้ในไฟล์ sudoers ของคุณโดยที่ชื่อผู้ใช้คือชื่อผู้ใช้ของคุณ:
ชื่อผู้ใช้ ALL = (ALL) NOPASSWD: ALL
คุณยังสามารถเปลี่ยนบรรทัด% sudo - นั่นคือบรรทัดที่อนุญาตให้ผู้ใช้ทั้งหมดในกลุ่ม sudo (หรือที่รู้จักกันในชื่อผู้ใช้ที่เป็นผู้ดูแลระบบ) ใช้ sudo - เพื่อให้ผู้ใช้ที่เป็นผู้ดูแลระบบทั้งหมดไม่ต้องการรหัสผ่าน:
% sudo ALL = (ALL: ALL) NOPASSWD: ALL
เรียกใช้คำสั่งเฉพาะโดยไม่มีรหัสผ่าน
นอกจากนี้คุณยังสามารถระบุคำสั่งเฉพาะที่จะไม่ต้องใช้รหัสผ่านเมื่อทำงานด้วย sudo แทนที่จะใช้“ ALL” หลังจาก NOPASSWD ด้านบนให้ระบุตำแหน่งของคำสั่ง ตัวอย่างเช่นบรรทัดต่อไปนี้จะอนุญาตให้บัญชีผู้ใช้ของคุณเรียกใช้คำสั่ง apt-get และ shutdown โดยไม่ต้องใช้รหัสผ่าน.
ชื่อผู้ใช้ ALL = (ALL) NOPASSWD: / usr / bin / apt-get, / sbin / shutdown
สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อใช้คำสั่งเฉพาะกับ sudo ในสคริปต์.
อนุญาตให้ผู้ใช้เรียกใช้เฉพาะคำสั่งเฉพาะ
ในขณะที่คุณสามารถบัญชีดำคำสั่งที่เฉพาะเจาะจงและป้องกันไม่ให้ผู้ใช้เรียกใช้ด้วย sudo นี้ไม่ได้มีประสิทธิภาพมาก ตัวอย่างเช่นคุณสามารถระบุว่าบัญชีผู้ใช้ไม่สามารถเรียกใช้คำสั่งปิดระบบด้วย sudo แต่บัญชีผู้ใช้นั้นสามารถเรียกใช้คำสั่ง cp ด้วย sudo สร้างสำเนาของคำสั่ง shutdown และปิดระบบโดยใช้สำเนา.
วิธีที่มีประสิทธิภาพมากขึ้นคือการยกเว้นคำสั่งที่อนุญาตพิเศษ ตัวอย่างเช่นคุณสามารถให้สิทธิ์บัญชีผู้ใช้มาตรฐานเพื่อใช้คำสั่ง apt-get และ shutdown แต่ไม่มาก โดยเพิ่มบรรทัดต่อไปนี้โดยที่ standarduser เป็นชื่อผู้ใช้ของผู้ใช้:
standarduser ALL = / usr / bin / apt-get, / sbin / shutdown
คำสั่งต่อไปนี้จะบอกเราว่าคำสั่งใดที่ผู้ใช้สามารถทำงานด้วย sudo:
sudo -U standarduser -l
การเข้าสู่ระบบ Sudo
คุณสามารถบันทึกการเข้าถึง sudo ทั้งหมดได้โดยเพิ่มบรรทัดต่อไปนี้ / var / log / sudo เป็นเพียงตัวอย่าง; คุณสามารถใช้ตำแหน่งไฟล์บันทึกใด ๆ ที่คุณต้องการ.
ค่าเริ่มต้น logfile = / var / log / sudo
ดูเนื้อหาของไฟล์บันทึกด้วยคำสั่งเช่นนี้:
sudo cat / var / log / sudo
โปรดจำไว้ว่าหากผู้ใช้มีการเข้าถึง sudo ไม่ จำกัด ผู้ใช้นั้นจะสามารถลบหรือแก้ไขเนื้อหาของไฟล์นี้ได้ ผู้ใช้ยังสามารถเข้าถึงรูทพรอมต์ด้วยคำสั่ง sudo และเรียกใช้ที่จะไม่ถูกบันทึก คุณลักษณะการบันทึกมีประโยชน์มากที่สุดเมื่อเชื่อมต่อกับบัญชีผู้ใช้ที่มีการ จำกัด การเข้าถึงชุดย่อยของคำสั่งระบบ.