Quiero agregar una entrada a mis suoders para permitir que un usuario ejecute un comando con exactamente un argumento sin opción.
# tail -1 /etc/sudoers
ALL ALL = (:tool) NOPASSWD: /bin/echo [a-z]*
$ sudo -g tool /bin/echo abc def
abc def
$ sudo -g tool /bin/echo -abc def
[sudo] password for user:
¿Puedo hacer eso usando la sintaxis sudoers? ¿O necesito crear un script de ayuda?
[a-z]*
ya es el argumento que quiero. Entonces es un argumento variable. (Yo uso / bin / echo solo para probar).Respuestas:
Que yo sepa, no puede pasar argumentos sin comando a sudo si ese argumento varía.
Puede especificar algo como esto:
Esto permitiría al usuario seguir algún archivo pero no otros archivos.
Si necesita pasar una variable, le recomiendo un script de contenedor.
Aquí hay un ejemplo de un contenedor rsync:
https://sites.google.com/site/beingroot/articles/useful-scripts/wrapper-script-to-use-rsync-via-sudo
Si buscas en Google sudo wrappers, puedes encontrar muchos más ejemplos.
Asegúrese de codificar todas las rutas y ejecutar comprobaciones de sanidad en la entrada si no se puede confiar en el usuario.
fuente