Ejecutar un comando con otro usuario sin que le pida contraseña
Por ejemplo, queremos que el usuario operador ejecute un comando como si fuese el usuario apache:
En el visudo añadimos la línea:
operador ALL = (ALL) NOPASSWD:/bin/su - apache -c /home/apache/comando.sh
Cuando ejecutemos este comando no nos pedirá contraseña:
sudo /bin/su - apache -c /home/apache/comando.sh
Sobretodo para ansible. Tenemos un usuario de conexión y otro usuario que tiene los binarios.
Usuario conexion: sshuser Usuario binarios: apache
Fichero /etc/sudoers.d/sshuser (puede ser PASSWD o NOPASSWD)
sshuser ALL = (apache) PASSWD:ALL
Ahora lanzo como usuario sshuser:
sudo -u apache whoami