J'ai une architecture utilisant des espaces de noms réseau (netns). Je voudrais permettre aux utilisateurs réguliers d'effectuer certaines opérations dans ces réseaux.
Je pourrais écrire un script netns-exec.sh
, inspiré de ce post , exécuté avec sudo
, contenant:
ip netns exec $1 su $USER -c "$2"
et ajouter à mon fichier sudoer:
user ALL=(ALL) /path/to/netns-exec.sh
Mais je le trouve si moche que je pourrais totalement faire des cauchemars à ce sujet. Existe-t-il une meilleure solution pour permettre aux utilisateurs réguliers d'utiliser des espaces de noms? Est-il possible de placer les utilisateurs dans certains groupes utiles? J'ai cherché mais je n'ai rien trouvé.
sudo
contenant su
qui m'ennuie, pas le script lui-même. Quoi qu'il en soit, je vais écrire un script pour envelopper la chose. Ça fait 2 changements d'utilisateur, c'est vraiment moche, tu ne crois pas?
sudo
fourni une variable spécifique $SUDO_USER
, qui est plus sûre. Mais c'est toujours moche.
Cmd_Alias CMD_NETNS = ip netns exec [regexp matching your namespace] su [regexp matching allowed used] -c [regexp matching allowed namespace command]
dans votre fichier sudoers puis créer un groupe dans lequel vous placez vos utilisateurs autorisés et associer ce groupe à cet alias de commande.