GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo permitir que el usuario ejecute un comando que contiene comillas en sudoers?

La solución simple es poner su comando en una secuencia de comandos y luego dar a sus usuarios acceso a la secuencia de comandos a través de sudo.

user ALL = (root) NOPASSWD: /path/to/yourscript

Entonces

#/bin/bash
chroot /chroots/box /bin/bash -c 'cd /repos/system && git pull'

Asegúrese de que sus usuarios no tengan acceso de escritura a su script.


editar:Advertencia, parece que sudo no maneja de manera segura los espacios en el comando, por lo que no es seguro usar sudo de esta manera. https://unix.stackexchange.com/a/279142/39281

En lugar de usar comillas en el archivo sudoers, puede escapar de los espacios usando una barra invertida:

user ALL = (root) NOPASSWD: chroot /chroots/box /bin/bash -c cd\ /repos/system\ &&\ git\ pull

Todavía puede usarlo de la siguiente manera, porque el shell del usuario maneja el argumento citado de todos modos:

chroot /chroots/box /bin/bash -c 'cd /repos/system && git pull'

Personalmente, me gusta la otra respuesta, ponerla en un guión, pero esto responde a la pregunta real.


Linux
  1. ¿Cómo ejecutar un comando como un usuario específico en un script de inicio?

  2. ¿Cómo ejecutar el comando bash con privilegios sudo en Java?

  3. ¿Cómo puedo agregar un usuario normal al archivo sudoers?

  4. ¿Cómo ver el historial de comandos de otro usuario en Linux?

  5. Cómo ejecutar remotamente el comando ssh un comando sudo sin contraseña

Cómo usar Sudo y el archivo Sudoers

Cómo agregar un usuario a Sudoers en Ubuntu

Cómo agregar un usuario a Sudoers en Debian

Cómo agregar un usuario a Sudoers en Fedora

Cómo usar el comando ulimit en Linux

¿Cómo ejecutar un comando en un script de Shell?