Ejecutar comandos como otro usuario

Ejecutar comandos como otro usuario

Creé un usuario llamado intelmqque tiene permisos para ejecutar un programa llamado intelmqctl. Luego creé un usuario llamado apachey me gustaría apacheejecutarlo intelmqctlcomo usuario intelmq. Agregué las siguientes líneas al sudoersarchivo:

Defaults:apache !requiretty
apache ALL=(intelmq) NOPASSWD: /usr/bin/intelmqctl

Sin embargo, cada vez que intento ejecutar el siguiente comando como usuario, apachedevuelve esto:

dominio:sudo -u apache sudo -u intelmq /usr/bin/intelmqctl --type json stop abusech-ip-parser

producción:

Sorry, user apache is not allowed to execute '/bin/sudo -u intelmq /usr/bin/intelmqctl --type json stop abusech-ip-parser' as apache on localhost.localdomain.

Estoy usando un CentOS 7.

Aquí están los pasos que hice para instalar intelmqctly el problema en sí se explica mejor, tal vez fallé en algo durante la instalación:https://github.com/certtools/intelmq/issues/981

Si intento ejecutar sudo -iu apachecomo root, cambiará al apacheusuario, luego, si ejecuto el comando sudo -u intelmq /usr/bin/intelmqctl, funciona, muestra todas las opciones para ejecutar intelmqctl.

Sin embargo, si ejecuto el comando sudo -iu apachecomo apacheusuario, devuelve:Sorry, user apache is not allowed to execute '/bin/bash' as apache on localhost.localdomain.

Respuesta1

Puede agregar permiso setuid a ese binario y cambiar la propiedad a intelmq.

chmod u+s /usr/bin/intelmqctl
chown intelmq /usr/bin/intelmqctl

Luego puede ejecutar este ejecutable con la propiedad del proceso de intelmq.

información relacionada