Tengo script.sh que debe ejecutarse como usuario2. Sin embargo, este script solo se puede ejecutar bajo user1 en mi aplicación.
Me gustaría ejecutar el siguiente comando:
su user2 -C script.sh
pero poder ejecutar sin contraseña.
También quiero que esto sea muy restrictivo, ya que en user1 solo se puede ejecutar script.sh en user2 y nada más.
Intenté hacer esto con el archivo sudoers y me confundí infinitamente después de horas de intentarlo.
Si alguien puede proporcionar un ejemplo explícito de cómo se puede lograr esto (en lugar de algo genérico como usar sudoers), sería muy apreciado.
Respuestas:
Llama
visudo
y agrega esto:¡Las rutas de comando deben ser absolutas ! Luego llame
sudo -u user2 /home/user2/bin/test.sh
desde unuser1
caparazón. Hecho.fuente
intenta correr:
Esto ejecutará el comando como nombre de usuario dado que tiene permisos para sudo como ese usuario.
fuente
sudo su -c "Your command right here" -s /bin/sh otheruser
su username -c "command"
.screen
como otro usuario, entonces esto podría ser servicial - linuxquestions.org/questions/linux-software-2/...username
(o en la preguntauser2
) tiene una contraseña propia, esto no permitirá omitir la solicitud. la otra respuesta sí: no se necesita contraseña, tanto user1 como user2.El comando anterior es correcto, pero en Red Hat si selinux está aplicando, no permitirá que cron ejecute scripts como otro usuario. ejemplo;
execl: couldn't exec /bin/sh execl: Permission denied
Tuve que instalar setroubleshoot y setools y ejecutar lo siguiente para permitirlo:
fuente