
¿Hay alguna manera de tener una entrada sudoers que permita ejecutar solo un comando en particular, sin argumentos adicionales? Parece que no puedo encontrar un recurso que describa cómo funciona la coincidencia de comandos con sudoers.
Digamos que quiero otorgar sudo para /path/to/executable arg
.
¿Tiene una entrada como la siguiente?
user ALL=(ALL) /path/to/executable arg
¿Permitir estrictamente el acceso de Sudo a un comando que coincida exactamente con eso? Es decir, ¿no otorga privilegios sudo al usuario para /path/to/executable arg arg2
?
Respuesta1
Encuentro lo siguiente en man sudoers
, cerca de la definición de Cmnd_List:
A simple filename allows the user to run the command with any arguments
he/she wishes. However, you may also specify command line arguments
(including wildcards). Alternately, you can specify "" to indicate
that the command may only be run without command line arguments.
Esto parecería implicar que permitir específicamente "arg" no permitiría "arg arg2". Por otro lado, he visto cierta inconsistencia en cómo se procesa el archivo sudoers en diferentes sistemas operativos (Linux vs Solaris, por ejemplo). Por lo tanto, debería realizar pruebas en su propio entorno.
Una solución alternativa, algo fea: crear un script ejecutable separado que ejecute el comando especificado con solo el argumento deseado y otorgar acceso sudo a ese script en lugar del comando original.
#!/bin/bash
/path/to/executable arg