У мене є архітектура, що використовує мережеві простори імен (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, а потім створюєте групу, в яку ви розміщуєте дозволених користувачів, і асоціюєте цю групу з цим псевдонімом команди.