Estoy tratando de usar el comando sudo y el archivo sudoers correctamente para poder ejecutar un comando como otro usuario.
Tengo mi archivo sudoers configurado de la siguiente manera:
beans ALL = (root,apache) NOPASSWD: /opt/renovations/var/script-*.sh
root, apache y beans son parte del grupo beans.
Además, / opt tiene 755 permisos, mientras que el directorio / opt / renovations y sus subdirectorios son propiedad del usuario y el grupo de beans.
El comando que intento ejecutar como beans es:
sudo -n -u apache -i /opt/renovations/var/script-test.sh
-n: es para que no se me solicite una contraseña, ya que esto será ejecutado por un cron
-u: es para que pueda suplantar al usuario de apache
-i: es para que simule un inicio de sesión y mi perfil. está cargado. Necesito esto para poder acceder a las variables de entorno en .profile.
El problema es que cuando ejecuto el comando sudo, recibo el siguiente mensaje:
sudo: lo siento, se requiere una contraseña para ejecutar sudo
He intentado ejecutar esto tanto en AIX como en Ubuntu, pero el problema está en ambos sistemas. Esto funciona si ejecuto:
sudo -n -u apache /opt/renovations/var/script-test.sh
Pero sin el -i, mi entorno no contiene todas las variables de entorno que necesito para estar allí.
¿Hay algo que necesito actualizar en mi archivo sudoers para que esto sea posible?
beans ALL = (root,apache) NOPASSWD: /usr/bin/ksh -c /opt/renovations/var/script-*.sh
y, beans ALL = (root,apache) NOPASSWD: /usr/bin/bash -c /opt/renovations/var/script-*.sh
pero ahora recibo el nuevo error, por ejemplo:ksh: /opt/renovations/var/script-test.sh: cannot execute
visudo -c
devuelve? Además, ¿puede confirmar la versión completa de AIX (oslevel -s
) y la versión de sudo instalada?