2016-06-02 9 views
7

के साथ निर्दिष्ट कोई पूछताछ प्रोग्राम मैं उपयोगकर्ता को jenkins पर रूट करने की अनुमति देने में सक्षम होने के लिए archvio /etc/sudoers सेट करने में कई दिन व्यतीत करता हूं। मेरे पास जेनकिंस मेरे सर्वर पर स्थापित है क्योंकि मैं सिम्फनी, आयनिक, नियो 4j इत्यादि के साथ कई परियोजनाओं की मेजबानी करता हूं ... समस्या यह है कि मैं आयनिक के साथ परियोजनाओं में निर्माण नहीं कर सकता, मुझे यह त्रुटि मिलती है: sudo: no tty present and no askpass program specified. यह मेरी सामग्री है/etc/sudoers फ़ाइल:जेनकींस सूडो: कोई tty उपस्थित नहीं है और 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

कृपया देखें http://stackoverflow.com/a/24648413 उदाहरण के लिए उपयोगकर्ता बिल्ला 'था, तो आप अपने sudoers फ़ाइल के अंत में निम्नलिखित पंक्ति जोड़ देगा/54506 (यह एक लाइन के बारे में बात करता है जो सूडोर्स में आखिरी होना चाहिए ..) – Jayan

+1

संभावित डुप्लिकेट [कैसे सुडो को ठीक करें: कोई tty उपस्थित नहीं है और कोई पूछताछ प्रोग्राम निर्दिष्ट नहीं है 'त्रुटि?] (Http://stackoverflow.com/questions/21659637/कैसे-टू-फ़िक्स-सूडो-नो-टीटी-वर्तमान-और-नो-पूछताछ-प्रोग्राम-निर्दिष्ट-त्रुटि) – Jayan

+0

ध्यान रखें कि उन 'सूडर्स' सेटिंग्स को विशिष्ट नोड पर सेट करने की आवश्यकता है जहां निर्माण हो रहा है , जिसे 'मास्टर' होने की आवश्यकता नहीं है। – luka5z

उत्तर

13

मैंने प्रश्न की टिप्पणियों में @ जयान द्वारा वर्णित समाधान का परीक्षण किया है।

समाधान:: आप फ़ाइल के अंत में नई लाइन को शामिल करना चाहिए 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

यह काफी संभव है कि आप sudoers फाइल करने के लिए एक गलत उपयोगकर्ता जोड़ रहे हैं। यह मेरे साथ भी हुआ और सूडोर्स फ़ाइल में प्रवेश जोड़ने का समाधान मेरे लिए काम नहीं कर रहा था। आपको वास्तविक उपयोगकर्ता को यह जानने की आवश्यकता होगी कि आपके जेनकींस कमांड निष्पादित करने के लिए उपयोग कर रहे हैं। इस उद्देश्य के लिए आप निम्न आदेश के साथ अपने जेनकींस के भीतर (खोल निष्पादित करें) निर्माण कदम जोड़ सकते हैं:

whoami 

फिर जेनकींस काम फिर से चलाने के लिए प्रयास करें और सांत्वना उत्पादन में, आप उपयोगकर्ता कि जेनकींस उपयोग कर रहा है देखेंगे आदेश निष्पादित करने के लिए। इसके बाद आपको इस उपयोगकर्ता को अपनी सूडो फाइल में जोड़ना होगा।

tomcat ALL=(ALL) NOPASSWD: ALL 

रेफरी:: http://techrofile.com/jenkins-sudo-no-tty-present-and-no-askpass-program-specified-with-nopasswd/

संबंधित मुद्दे