มันได้เสมออุดมการณ์ของฉันที่เป็นผู้ใช้ที่คุณสามารถทำสิ่งที่คุณต้องการบน Linux sudo
และสำหรับทุกสิ่งทุกอย่างที่มีอยู่เสมอ sudo
อนุญาตให้ดำเนินการบางสิ่งในฐานะผู้ใช้รายอื่นซึ่งส่วนใหญ่มักใช้root
สำหรับการดูแลระบบ sudo
ได้รับทรัพยากรความได้เปรียบที่ยิ่งใหญ่กว่าในการมอบหมายงานประจำและสิทธิพิเศษบางส่วนของฉันในฐานะผู้ใช้ (รูท) ให้กับผู้อื่นและช่วยจัดการเวลาของฉันและเวลาอื่น ๆ ได้ดีขึ้นโดยไม่ยกระดับสิทธิ์ให้เกินกว่าที่ต้องการ ในขณะเดียวกันก็เป็นความไว้วางใจของฉันกับพวกเขาที่ทำให้รายการของพวกเขาอยู่ในsudoers
ไฟล์การกำหนดค่า ฉันไม่แน่ใจว่ามันจะเกี่ยวข้องหรือไม่ แต่สิ่งที่ฉันสามารถพูดได้ก็คือ sudo จะให้มุมมองด้านความปลอดภัยที่ดีกว่าแก่คุณเกี่ยวกับการที่ทุกคนและพวกเขาสามารถทำอะไรกับสิทธิพิเศษที่เชื่อถือได้ของพวกเขา แม้ว่าจะมีบางอย่างผิดปกติ แต่ก็มีความรับผิดชอบ (ฉันสามารถทำยอดเขาที่ลับๆล่อๆด้วยข้อมูลบันทึก sudoers เพื่อค้นหาผู้กระทำผิดเช่นกัน) พวกของฉันมักจะแสดงความกังวลกับพวกเขาเสมอว่าพวกเขาต้องพิมพ์ sudo สำหรับทุกสิ่งที่พวกเขาต้องการจะทำด้วยสิทธิ์ระดับสูงในสภาพแวดล้อม Linux ที่นี่ฉันพบคำถามเดียวกันด้วย
เมื่อต้องการดูโซลูชันและการค้นหาทางเลือกอื่นฉันได้พบการควบคุมการเข้าถึงฐานทรัพยากร RBAC
แต่ในดินแดนผจญภัยอื่น ๆSolaris
ด้วยเครื่องมือเช่นpfexec
ฯลฯ วิธีนี้ดีกว่าเพราะจะรักษาสิทธิ์ของผู้ใช้ที่ยกระดับไว้แล้วและจะไว้วางใจ บนมโนธรรมและความตื่นตัวของสิ่งที่ผู้ดูแลระบบต้องการทำกับสิทธิพิเศษของพวกเขา
เมื่อพิจารณาถึงโซลูชันที่มีอยู่ของ RBAC และการใช้งานในโลก Linux ฉันพบเจอ
SELinux http://www.ibm.com/developerworks/linux/library/l-rbac-selinux/
grsecurity http://en.wikipedia.org/wiki/Grsecurity
และในขณะที่มีการใช้งานอื่น ๆ ฉันจะพิจารณาพวกเขาตามลำดับสูงสุดของรายการ การนำ RBAC ไปใช้นั้นเป็นงานจำนวนมากในองค์กรโดยเฉพาะเมื่อมีผู้ใช้จำนวนมาก RBAC จะให้เสียงที่ดีกว่าในสภาพแวดล้อมที่เป็นเนื้อเดียวกัน อย่างไรก็ตามเมื่อมีการติดตั้ง Unix ที่ต่างกันในเครือข่ายและฐานข้อมูลผู้ใช้เป็นเรื่องปกติ เนื่องจาก SELinux ไม่สามารถปรับขนาด / นำไปใช้กับเครื่องมือ Solaris และ RBAC / pfexec ไม่ได้ถูกนำมาใช้บน Linux มีวิธีการต่าง ๆ สำหรับการทำสิ่งเดียว ตัวอย่างเช่น: http://blogs.oracle.com/darren/entry/opensolaris_rbac_vs_sudo_howto
การติดตั้งทั่วทั้งเครือข่ายที่แตกต่างกันอาจไม่สนับสนุนวิธีการนี้ (อย่างไรก็ตาม openrbac อาจถูกพิจารณาว่าเป็นวิธีการใช้งานทั่วไป) เช่น sudoers เป็นวิธีการโฮสต์เดียวหรือไม่สามารถกำหนดค่าส่วนกลางในเครือข่าย / โดเมนได้/etc/sudoers
ต้องซิงค์ทุกครั้งที่มีการเปลี่ยนแปลง ยิ่งไปกว่านั้นมีข้อกำหนดของฐานความรู้ในขณะที่ใช้งานไฟล์ sudoers จำเป็นต้องเข้าใจภาษานโยบายของการกำหนดค่า sudoers เพื่อไม่ให้เกิดข้อผิดพลาดและอนุญาตให้มีการมอบทุนใด ๆ RBAC อาจเสนอวิธีการรวมศูนย์ในขอบเขตในขณะที่โปรไฟล์ความปลอดภัยสามารถทั่วไปการเพิ่ม / ลบผู้ใช้จากบทบาทที่ได้รับอนุญาตสามารถทำได้จากที่เดียว (นั่นคือสถานที่ที่ข้อมูลผู้ใช้ / passwd / กลุ่มถูกเก็บไว้สำหรับ โดเมนเช่น LDAP, NIS หรือ AD) สิ่งนี้จะต้องมีความเข้าใจอย่างชัดเจนเกี่ยวกับคำสั่งที่จำเป็นในการทำงานกับฐานข้อมูล RBAC เช่น smexec, smmultiuser
Sudo อาจเสนอวิธีการข้ามแพลตฟอร์มมากขึ้นที่นี่ยังใช้งานได้บนแพลตฟอร์ม Unix / like ทั้งหมดที่มีคุณสมบัติ setuid ทั้งสองsudo
และRBAC
ประสบความสำเร็จในการให้สิทธิ์ผู้ใช้ที่ไม่ใช่ผู้ใช้รูทที่สามารถทำได้โดยไม่ต้องให้root
รหัสผ่านเอง Sudo สามารถให้แนวทางที่ละเอียดยิ่งขึ้น / ละเอียดยิ่งขึ้นบนอาร์กิวเมนต์บรรทัดคำสั่งที่สามารถใช้ในขณะที่รันคำสั่งและ จำกัด อย่างแท้จริงว่าคำสั่งใดที่มีอาร์กิวเมนต์สามารถรันด้วยสิทธิ์ระดับสูง แม้ว่า RBAC อาจ จำกัด ให้ใช้คำสั่งหรือไบนารีที่ติดตั้ง แต่ไม่สามารถควบคุมอาร์กิวเมนต์บรรทัดคำสั่งได้ การตรวจสอบจะดีกว่าและสร้างขึ้นในสภาพแวดล้อม RBAC ในขณะที่sudo
มันขึ้นอยู่กับการกำหนดค่าและข้อ จำกัด ด้านความปลอดภัยภายใต้การดำเนินการ (เช่นไม่ให้เชลล์และโดยเฉพาะอย่างยิ่งโฮสต์ที่ได้รับอนุญาตให้เข้าสู่โฮสต์อื่น ๆ โดยไม่มีปัญหาใด ๆ ) เหล่านี้เป็นเพียงบางส่วนของความแตกต่างที่ฉันสามารถอ้างอิงและฉันมีความชอบส่วนตัวที่จะใช้ sudo กว่า RBAC แม้ว่าจะมีข้อ จำกัด ดังกล่าวที่ฉันสามารถนำมาใช้ในการทำงานรอบ ๆ จนกว่าปัญหาทั้งหมดจะได้รับการแก้ไขโดย RBAC เพื่อประโยชน์ของ sudo ที่ดีกว่าฉันไม่คิดว่า sudo จะหายไปเพราะมันง่าย