Eu tenho uma arquitetura usando namespaces de rede (netns). Gostaria de permitir que usuários regulares realizem algumas operações nesses netns.
Eu poderia escrever um script netns-exec.sh
, inspirado neste post , executado com sudo
, contendo:
ip netns exec $1 su $USER -c "$2"
e adicione ao meu arquivo sudoer:
user ALL=(ALL) /path/to/netns-exec.sh
Mas acho tão feio que eu poderia ter pesadelos sobre isso. Existe uma solução melhor para permitir que usuários comuns usem namespaces? É possível colocar os usuários em alguns grupos úteis? Eu procurei, mas não encontrei nada.
sudo
contém um su
que me incomoda, não o próprio script. De qualquer forma, vou escrever um script para embrulhar a coisa. Faz 2 comutadores de usuário, isso é realmente feio, você não acha?
sudo
fornecia uma variável específica $SUDO_USER
, que é mais segura. Mas isso ainda é feio.
Cmd_Alias CMD_NETNS = ip netns exec [regexp matching your namespace] su [regexp matching allowed used] -c [regexp matching allowed namespace command]
no arquivo sudoers e cria um grupo no qual coloca os usuários permitidos e associa esse grupo a esse alias de comando.