2016-06-02 45 views
7

ile hiçbir belirleme programı belirtildi Kullanıcıya jenkins kullanıcı için kök izin vermek için archvio /etc/sudoers ayarlayarak birkaç gün geçiriyorum. Symfony, ionic, neo4j, vs ile birçok projeye ev sahipliği yaptığım için sunucumda Jenkins var. Sorun şu ki, bu projeyi iyonik olarak yapamam, bu hatayı aldım: sudo: no tty present and no askpass program specified. Bu benim içeriğim/etc/sudoers dosya:Jenkins sudo: yok tty mevcut ve NOPASSWD

# 
# This file MUST be edited with the 'visudo' command as root. 
# 
# Please consider adding local content in /etc/sudoers.d/ instead of 
# directly modifying this file. 
# 
# See the man page for details on how to write a sudoers file. 
# 
Defaults env_reset 
Defaults mail_badpass 
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 

# Host alias specification 

# User alias specification 

# Cmnd alias specification 

# User privilege specification 
root ALL=(ALL:ALL) ALL 
jenkins ALL=(ALL) NOPASSWD: ALL 
# Allow members of group sudo to execute any command 
%sudo ALL=(ALL:ALL) ALL 
+1

bakınız http://stackoverflow.com/a/24648413 kullanıcının erkek kedi 'Söz gelimi, kendi Sudoers dosyanın sonuna aşağıdaki satırı katacak/54506 (sudoers içinde son bir satır olması gerektiği söylenir ..) – Jayan

+1

Olası yinelenen [sudo nasıl düzeltilir: sudo: no tty present ve nopass program no 'error?] (Http://stackoverflow.com/questions/21659637/nasıl yapılır-düzeltmek-sudo-no-tty-şimdi-ve-no-askpass-program-belirtilen-hata) – Jayan

+0

Bu 'sudoers' ayarlarının, yapının oluştuğu belirli bir düğümde ayarlanması gerektiğini unutmayın. Bir 'master' olması gerekmiyor. – luka5z

cevap

13

Sorunun yorumlarında @Jayan tarafından açıklanan çözümü test ettim.

Çözüm: Eğer dosyanın sonuna yeni bir satır içermelidir https://stackoverflow.com/a/24648413/54506

# 
# This file MUST be edited with the 'visudo' command as root. 
# 
# Please consider adding local content in /etc/sudoers.d/ instead of 
# directly modifying this file. 
# 
# See the man page for details on how to write a sudoers file. 
# 
Defaults env_reset 
Defaults mail_badpass 
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 

# Host alias specification 

# User alias specification 

# Cmnd alias specification 

# User privilege specification 
root ALL=(ALL:ALL) ALL 

# Allow members of group sudo to execute any command 
%sudo ALL=(ALL:ALL) ALL 
jenkins ALL=(ALL) NOPASSWD: ALL 
0

Bu Sudoers dosyaya bir yanlış kullanıcı ekleme olduğunu oldukça mümkündür. Bu bana da oldu ve sudoers dosyasında bir giriş eklemek için çözüm benim için çalışmıyordu. Jenkins'un komutları yürütmek için kullandığı gerçek kullanıcıyı bilmeniz gerekir. Bu amaçla aşağıdaki komutla jenkins içinde (kabuk çalıştır) bir yapı adımı ekleyebilirsiniz:

whoami 

Sonra tekrar Jenkins işi çalıştırmayı deneyin ve konsol çıktı, kullanmakta olduğu jenkins kullanıcıyı göreceksiniz komutları yürütmek için. Daha sonra bu kullanıcıyı sudoers dosyanıza eklemeniz gerekir.

tomcat ALL=(ALL) NOPASSWD: ALL 

Ref: http://techrofile.com/jenkins-sudo-no-tty-present-and-no-askpass-program-specified-with-nopasswd/