ฉันมีสถาปัตยกรรมที่ใช้เนมสเปซเครือข่าย (netns) ฉันต้องการอนุญาตให้ผู้ใช้ทั่วไปทำการดำเนินการบางอย่างในเน็ตเหล่านี้
ฉันสามารถเขียนสคริปต์netns-exec.sh
ซึ่งได้รับแรงบันดาลใจจากโพสต์นี้ดำเนินการโดยsudo
มี:
ip netns exec $1 su $USER -c "$2"
และเพิ่มลงในไฟล์ sudoer ของฉัน:
user ALL=(ALL) /path/to/netns-exec.sh
แต่ฉันคิดว่ามันน่าเกลียดมากจนฉันสามารถฝันร้ายได้โดยสิ้นเชิง มีวิธีแก้ปัญหาที่ดีกว่าเพื่อให้ผู้ใช้ทั่วไปสามารถใช้เนมสเปซหรือไม่ เป็นไปได้ไหมที่จะนำผู้ใช้ไปสู่กลุ่มที่มีประโยชน์บางกลุ่ม? ฉันค้นหามัน แต่ไม่พบอะไรเลย
sudo
สิ่งsu
ที่ทำให้ฉันรำคาญไม่ใช่สคริปต์ อย่างไรก็ตามฉันจะเขียนสคริปต์เพื่อห่อสิ่งนั้น มันทำให้สวิตช์ของผู้ใช้ 2 อันมันน่าเกลียดจริง ๆ คุณไม่คิดเหรอ?
sudo
มีตัวแปรเฉพาะ$SUDO_USER
ซึ่งปลอดภัยกว่า แต่นั่นก็ยังน่าเกลียด
Cmd_Alias CMD_NETNS = ip netns exec [regexp matching your namespace] su [regexp matching allowed used] -c [regexp matching allowed namespace command]
ในไฟล์ sudoers ของคุณแล้วสร้างกลุ่มที่คุณใส่ผู้ใช้ที่ได้รับอนุญาตของคุณและเชื่อมโยงกลุ่มนี้กับนามแฝงคำสั่งนี้