Tengo una arquitectura que usa espacios de nombres de red (netns). Me gustaría permitir que los usuarios habituales realicen algunas operaciones en estas redes.
Podría escribir un guión netns-exec.sh
, inspirado en esta publicación , ejecutado con sudo
, que contenga:
ip netns exec $1 su $USER -c "$2"
y agregar a mi archivo sudoer:
user ALL=(ALL) /path/to/netns-exec.sh
Pero lo encuentro tan feo que podría tener pesadillas al respecto. ¿Existe una mejor solución para permitir que los usuarios habituales usen espacios de nombres? ¿Es posible poner a los usuarios en algunos grupos útiles? Lo busqué pero no encontré nada.
sudo
contiene un su
que me molesta, no el script en sí. De todos modos, escribiré un guión para envolver la cosa. Hace 2 cambios de usuario, eso es realmente feo, ¿no te parece?
sudo
proporcionaba una variable específica $SUDO_USER
, que es más segura. Pero eso sigue siendo feo.
Cmd_Alias CMD_NETNS = ip netns exec [regexp matching your namespace] su [regexp matching allowed used] -c [regexp matching allowed namespace command]
en su archivo sudoers y luego crea un grupo en el que coloca sus usuarios permitidos, y asocia este grupo a este alias de comando.