¿Cómo permitir que el usuario del servidor web active un script que necesita permisos sudo?

¿Cómo permitir que el usuario del servidor web active un script que necesita permisos sudo?

¿Es posible hacer que el usuario del servidor web, lighttpden mi caso, active un script específico que deba ejecutarse con sudopermisos?

Solo quiero que el lighttpdusuario pueda activar ese script con sudopermisos.

El script, llamémoslo createFolder.sh, crea una carpeta a partir de una plantilla en el nivel superior de un recurso compartido. Los usuarios no tienen permisos de escritura en el nivel superior del recurso compartido, pero deberían tener permiso de escritura en la estructura de carpetas recién creada. Por lo tanto, el script configura los permisos correctos en las subcarpetas y de ahí sudosurge la necesidad de usar ( y chown) .chmodsetfacl

La razón por la que me gustaría utilizar una interfaz web es para que los usuarios puedan insertar los datos para el nombre de la carpeta y la configuración que definirá la estructura exacta de la carpeta.

Pensé que sería tan simple como agregar una entrada /etc/sudoerspara permitir al lighttpdusuario ejecutar createFolder.shsin contraseña. Parece que me equivoqué porque aparece el siguiente error:

sudo: no se puede mkdir /var/db/sudo/lighttpd: permiso denegado

Confiamos en que haya recibido el sermón habitual del administrador del sistema local. Generalmente se reduce a estas tres cosas:

1) Respetar la privacidad de los demás.
2) Piensa antes de escribir.
3) Un gran poder conlleva una gran responsabilidad.

sudo: no hay tty presente y no se ha especificado ningún programa Askpass

Si fuera posible configurar el script para que se ejecute siempre como un usuario con los permisos correctos, lo solucionaría, pero no pude encontrar cómo hacerlo o si es posible.

Como nota al margen, aprendí Linux por mi cuenta y, aunque confío en mis habilidades, no soy un especialista y siempre estoy buscando mejorar.

Estoy ejecutando una caja CentOS 7.

EDITAR: Resolví el problema usando inotify para activar mi createFolder.shscript cuando se modifica un archivo de texto. Ver respuesta correcta y sus comentarios. Gracias por señalarme en la dirección correcta chicos.

Respuesta1

Debería hacer que el script raíz "extraiga" del normal en lugar de que el último "empuje" al primero. Como ejemplo ilustrativo:

  1. Cree un trabajo cron que busque una lista de carpetas que se crearán en un archivo de texto
  2. Haga que el script de usuario lighttpd agregue la carpeta deseada a ese archivo de texto

Puedes hacer esto de manera más elegante con un sistema de colas/mensajes, pero eso depende de ti.

información relacionada