जेनकिंस: वैश्विक सुरक्षा को चालू करने के बाद प्रवेश निषेध। वापस कैसे करें?


14

यह पता लगाने में मदद की जरूरत है। मैं इस समस्या को कैसे हल कर सकता हूं? मुझे लगता है कि मैंने वैश्विक सुरक्षा को सक्षम किया और इस त्रुटि को तुरंत देखा।

(लोकलहोस्ट एक्सेस करते समय: 8080 मुझे निम्न मिलता है ...)

A problem occurred while processing the request. Please check our bug tracker to see if a similar problem has already been reported. If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem. If you think this is a new issue, please file a new issue. When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins. The users list might be also useful in understanding what has happened.

Stack trace
hudson.security.AccessDeniedException2: anonymous is missing the Overall/Read permission
    at hudson.security.ACL.checkPermission(ACL.java:54)
    at hudson.model.Node.checkPermission(Node.java:418)
    at jenkins.model.Jenkins.getTarget(Jenkins.java:3658)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:656)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:225)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
    at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
    at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.eclipse.jetty.server.Server.handle(Server.java:370)
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
    at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:695)

जवाबों:


14

config.xml को संपादित करें और नीचे दिए गए संस्करण के साथ निम्नलिखित दो xml टैग बदलें। फिर अपने सर्वर को पुनरारंभ करें।

  <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
  <securityRealm class="hudson.security.SecurityRealm$None"/>

खबरदार, आपके मौजूदा टैग संभवतः प्रत्येक पंक्ति में कई लाइनों पर फैले हुए हैं।


और मुझे कहाँ देखना चाहिए config.xml?
sobi3ch

ठीक है, मैंने पाया कि .. सामान्य रूप से सेट है, $JENKINS_HOMEलेकिन मेरे मामले में यह खाली था। अपने उबंटू पर मैंने इसे पाया /var/lib/jenkins/
sobi3ch

जबकि इस सवाल का एक अच्छा जवाब है, यह जवाब भी थोड़ा अधिक सामान्य है। यदि आपने अपनी सुरक्षा सेटिंग खराब कर दी हैं (या IT ने LDAP बदल दिया है) और आपको एक लॉक आउट Jenkins में वापस लाने की आवश्यकता है, तो config.xml में सुरक्षा मिटा देना और ऊपर दिए गए xml टैग में जोड़ना आपको फिर से मिल जाएगा।
गन्नुचू २ '

11

आपको यह त्रुटि इसलिए हो रही है क्योंकि आपने सुरक्षा सक्षम कर दी है, लेकिन अनुमतियों वाला कोई भी उपयोगकर्ता नहीं है। इस समस्या को हल करने के लिए, पहले संपादित करें config.xmlऔर सेट useSecurityकरेंfalse

मुझे लगता है कि आप बाहरी डीबी (यानी, एलडीएपी) के बजाय स्थानीय प्रमाणीकरण (उपयोगकर्ताओं का एक स्थानीय डीबी) का उपयोग करना चाहते हैं। जेनकिंस प्रलेखन से नीचे दिए गए चरणों का पालन करें ।

  1. कॉन्फ़िगर ग्लोबल सिक्योरिटी स्क्रीन ( http: // सर्वर / जेनकिंस / कॉन्फिगरेशन / ) पर जाएं और "सुरक्षा सक्षम करें" चुनें। कोशिश करने के लिए एक वैकल्पिक URL है http: // सर्वर: 8080 / configSecurity
  2. सुरक्षा क्षेत्र के रूप में "जेनकिंस का अपना उपयोगकर्ता डेटाबेस" चुनें
  3. "उपयोगकर्ताओं को साइन अप करने की अनुमति दें" के बगल में एक चेक मार्क रखें
  4. प्राधिकरण के रूप में "मैट्रिक्स-आधारित सुरक्षा" का चयन करें
  5. अनाम उपयोगकर्ता को रीड एक्सेस प्रदान करें
  6. तालिका के नीचे पाठ बॉक्स में, अपने उपयोगकर्ता नाम में टाइप करें (आप इसे बाद में बना रहे होंगे) और "जोड़ें" पर क्लिक करें
  7. अपने उपयोगकर्ता नाम के लिए पूरी पंक्ति की जाँच करके स्वयं को पूर्ण पहुँच दें
  8. नीचे तक सभी तरह से स्क्रॉल करें, "सहेजें" पर क्लिक करें

संस्करण 1.566 के साथ परीक्षण किया गया।


मैं स्वीकार किए गए उत्तर में दिए गए परिवर्तनों को वापस करने का सुझाव देता हूं क्योंकि इससे ऊपर दिए गए कदम प्रभावित होने की संभावना है।


क्या करता <useSecurity>false</useSecurity>है?
एलेक्स

@alex यह जेनकिंस में सुरक्षा को निष्क्रिय करता है ताकि आप लॉगिन और पुन: कॉन्फ़िगर कर सकें। jenkins.io/doc/book/system-administration/security/…
amertkara

2

दो-लाइनर फिक्स (सर्वर पर चलाएँ):

sudo ex +g/useSecurity/d +g/authorizationStrategy/d -scwq /var/lib/jenkins/config.xml
sudo /etc/init.d/jenkins restart

नोट: sudoअनुमति की आवश्यकता है, या के रूप में चलाएँ root

फिर सामान्य रूप से जेनकिंस में लॉगिन करें और सुरक्षा को फिर से कॉन्फ़िगर करें।


0

इसी तरह के मुद्दे का मैंने सामना किया, लेकिन GitHub OAuth प्लगइन के साथ, यहाँ सहमत उत्तर के लिए धन्यवाद, मेरी समस्या और समाधान यहाँ समझाया गया है


0

Windows में: जब मैंने LDAP को वैश्विक सुरक्षा के तहत सक्षम किया है, तो मैंने अपना व्यवस्थापक भी खो दिया है। "एक्सेस डेनिड के रूप में त्रुटि के साथ ओवरऑल / रीड परमिशन जेन्किन्स विंडो गायब है"।

ऐसे मामले में, कृपया मौजूदा उदाहरण को बनाए रखें, किसी मशीन या वीएम पर नया जेनकींस स्थापित करें। Jenkins_Home से config.xml की प्रतिलिपि बनाएँ और इसे अपने Jenkin_Home निर्देशिका से config.xml से बदलें। यह प्रदर्शन करते समय, सुनिश्चित करें कि जेनकिंस सेवा बंद हो गई है। एक बार प्रतिस्थापित करने के बाद, उदाहरण और VOILA प्रारंभ करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.