У меня есть архитектура с использованием сетевых пространств имен (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, а затем создаете группу, в которую вы помещаете разрешенных пользователей, и связываете эту группу с псевдонимом этой команды.