การกำหนดค่า sudoers แบบละเอียด (อาร์กิวเมนต์บรรทัดคำสั่งที่อนุญาต)


20

มีวิธีตรงไปตรงมาเพื่ออนุญาตให้ผู้ใช้เรียกใช้ (ตัวอย่าง)

/usr/bin/pacman -S -u

ในฐานะที่เป็นรูทโดยไม่อนุญาตให้เขาวิ่ง

/usr/bin/pacman -S -u some_package

?

เส้น

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u

อนุญาตให้ทั้งสองและ

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u ""

ดูเหมือนจะเทียบเท่าความหมาย

คำตอบ:


27

สำหรับกรณีของคุณลองทำดังนี้:

Cmnd_Alias PACMAN = /usr/bin/pacman -S -u, ! /usr/bin/pacman -S -u some_package
user ALL=(root) NOPASSWD: PACMAN

คุณสามารถใช้รูปแบบเชลล์แบบกลมเช่น [az], [0-9], * ฯลฯ ในไฟล์ sudoers ของคุณเพื่อแยกแพคเกจที่ตรงกับรูปแบบบางอย่าง


3

เขียนสคริปต์ที่ทำในสิ่งที่คุณต้องการและให้สิทธิ์การเข้าถึง sudo

ตรวจสอบให้แน่ใจด้วยว่าสภาพแวดล้อมใด ๆ ก็ตามที่ทำงานอยู่นี้ไม่สามารถเข้าถึงเครือข่ายได้เลยหรือพวกเขาสามารถใช้ dns ของตัวเองเพื่อหลอกมิเรอร์แล้วเรียกใช้โค้ดโดยพลการเป็นรูทเมื่อ pacman ได้รับการติดตั้ง


ไม่ thats วิธีที่สง่างาม, sudo สนับสนุนโดยค่าเริ่มต้นคดีที่แน่นอน
แมทเธียครัลล์

1
ไม่ใช่ทางออกที่ดีที่สุด แต่ +1 สำหรับคำเตือนด้านความปลอดภัย
Aaron J Lang
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.