Tengo una máquina de compilación que tiene un usuario abc
que tiene acceso limitado a sudo. Cuando reviso el código fuente y ejecuto mi script de compilación, funciona bien. El script de compilación contiene sudo
llamadas para las cuales no dice "sudo: no hay ningún tty presente y ningún programa askpass especificado". Pero cuando hice lo mismo con Jenkins en una máquina de compilación agregada como esclava, muestra "sudo: no hay tty presente y ningún programa askpass especificado".
He encontrado una solución que dice comentar Default requiretty
en el archivo /etc/sudoers
. Pero no tengo acceso a este archivo.
¿Cómo puedo superar este problema?
sudo
tty
not-root-user
jenkins
Niraj
fuente
fuente
sudo
ejecute sin ingresar una contraseña? Si tiene que ingresar una contraseña, sudo requerirá un tty.Respuestas:
Hay dos opciones, comentar la
Defaults requiretty
configuración de / etc / sudoers como mencionaste o usar el-t
argumento pseudo-tty alloction ( ) parassh
.Pruebe lo siguiente en su script jenkins:
ssh -t 127.0.0.1 "sudo command"
Aunque tendrá que tener
ssh
claves precompartidas configuradas para usted y ejecutarlas una vez manualmente para agregar una entrada a hosts conocidos, alternativamente agregue el-o StrictHostKeyChecking=no
argumentossh
para ignorar esto.fuente
Falla porque
sudo
está intentando solicitar la contraseña de root y no hay pseudo-tty asignado.Debe iniciar sesión como root o configurar las siguientes reglas en su
/etc/sudoers
(o:)sudo visudo
:Luego, asegúrese de que su usuario Jenkins pertenezca al
admin
grupo (owheel
).Idealmente (más seguro) sería limitar los privilegios de root solo a comandos específicos que se pueden especificar como
%admin ALL=(ALL) NOPASSWD:/path/to/program
fuente
Si está ejecutando comandos a través de ssh, debe marcar la opción "Exec in pty".
fuente