¿Cómo otorgar derechos de sudo solo a archivos de script específicos?


17

Me gustaría que un usuario tenga derechos de sudo (sin verificación de contraseña) para un par de scripts de shell en un directorio específico (en mi caso /usr/local/tomcat7/bin), y en ningún otro lugar. ¿Cuál es la forma más sencilla de lograr esto?

Algo como esto /etc/sudoersno parecía funcionar:

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin

Respuestas:


22

Creo que ya casi estás allí. pon un /al final de la especificación de tu directorio

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/

Desde la página de manual de sudoers

Un directorio es un nombre de ruta completo que termina en '/'. Cuando especifica un directorio en una Cmnd_List, el usuario podrá ejecutar cualquier archivo dentro de ese directorio (pero no en ningún subdirectorio).


Gracias (a ambos respondedores), ¡funcionó! Nota mental: necesidad de invocar los scripts directamente (por ejemplo sudo catalina.sh stop) - esto no funciona: sudo sh catalina.sh stop.
Jonik

7

Agregue una barra inclinada '/' al final de la ruta.

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.