การป้องกัน sudo su บน CentOS VPS


1

ฉันใหม่สำหรับ linux ฉันมี VPS ภายใต้ CentOS และฉันมีผู้ใช้รูท ฉันเข้าสู่ระบบเป็น myuser (ที่ฉันสร้างขึ้นจาก godaddy accout ของฉัน) และฉันพิมพ์ sudo su เพื่อเข้าถึงเป็น root

ตอนนี้ฉันต้องการให้ใครบางคนสามารถติดตั้งทุกอย่างที่เขาต้องการในเซิร์ฟเวอร์ แต่ฉันไม่ต้องการให้เขาสามารถพิมพ์ sudo su และเข้าถึงรูทได้

ฉันสร้างผู้ใช้ dev1 และเพิ่มใน visudo เช่น:

root ALL=(ALL) ALL
dev1 ALL=(ALL) ALL

เมื่อฉันเข้าสู่ระบบในฐานะ dev1 ฉันยังคงสามารถพิมพ์ sudo su และรับสิทธิ์การเข้าถึงรูตได้ดังนั้นฉันจะป้องกันได้อย่างไร

ขอบคุณ


man sudoและman sudoers
Eugen Rieck

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

คำตอบ:


0

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

dev1 ALL = NOPASSWD : /usr/bin/yum, /usr/bin/apt-get , /usr/bin/aptitude

(โดยปกติจะเป็นคน CentOS ใช้ yum ดังนั้นฉันจึงรวมเส้นทางไปยัง yum ด้วยเช่นกัน แต่คุณสามารถลบออกได้หากไม่ได้ติดตั้งไว้ใน VPS ของคุณ)

ด้วยการตั้งค่านี้ผู้ใช้จะไม่ถูกถามรหัสผ่านอีกครั้งเมื่อพวกเขาติดตั้งบางสิ่ง แต่ถ้าคุณต้องการบังคับให้พวกเขาพิมพ์รหัสผ่านอีกครั้งคุณสามารถใช้

dev1 ALL = PASSWD : /usr/bin/yum, /usr/bin/apt-get , /usr/bin/aptitude

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

%users ALL = PASSWD : /usr/bin/yum, /usr/bin/apt-get , /usr/bin/aptitude

การติดตั้งสามารถทำได้ในขณะนี้

$ sudo /usr/bin/yum install name_of_a_program
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.