Tengo una máquina de compilación que tiene un usuario abcque 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 sudollamadas 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 requirettyen 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

sudoejecute sin ingresar una contraseña? Si tiene que ingresar una contraseña, sudo requerirá un tty.Respuestas:
Hay dos opciones, comentar la
Defaults requirettyconfiguración de / etc / sudoers como mencionaste o usar el-targumento pseudo-tty alloction ( ) parassh.Pruebe lo siguiente en su script jenkins:
ssh -t 127.0.0.1 "sudo command"Aunque tendrá que tener
sshclaves precompartidas configuradas para usted y ejecutarlas una vez manualmente para agregar una entrada a hosts conocidos, alternativamente agregue el-o StrictHostKeyChecking=noargumentosshpara ignorar esto.fuente
Falla porque
sudoestá 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
admingrupo (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/programfuente
Si está ejecutando comandos a través de ssh, debe marcar la opción "Exec in pty".
fuente