Wie kann ich die Jenkins-Sicherheitseinstellungen über die Befehlszeile zurücksetzen?

217

Gibt es eine Möglichkeit, alle Benutzer in der Befehlszeile ohne Benutzer / Kennwort zurückzusetzen (oder nur die Sicherheitseinstellungen zu deaktivieren), da ich es geschafft habe, mich vollständig auszuschließen Jenkins?

Ryanzec
quelle

Antworten:

275

Die einfachste Lösung ist , um vollständig zu deaktivieren Sicherheit - Änderung truezu falsein - /var/lib/jenkins/config.xmlDatei.

<useSecurity>true</useSecurity>

Dann starten Sie Jenkins einfach neu

sudo service jenkins restart

Gehen Sie dann zum Admin-Bereich und stellen Sie alles erneut ein.

Wenn Sie Ihre Jenkins in einem k8s-Pod von einem Docker aus ausführen, was in meinem Fall der Fall ist und keinen serviceBefehl ausführen kann, können Sie Jenkins einfach neu starten, indem Sie den Pod löschen:

kubectl delete pod <jenkins-pod-name>

Sobald der Befehl erteilt wurde, beenden die k8s den alten Pod und starten einen neuen.

Nowaker
quelle
3
Ich musste Jenkins neu starten, damit die Änderung angewendet werden konnte.
Oder Arbel
12
sudo service jenkins restart
MonoThreaded
10
Für diejenigen, die es nicht finden können, verwenden Sie ihre config.xml find / -name "config.xml" in Ihrem Terminal.
Laser Hawk
Nach dem Ändern des Benutzersicherheitstags auf false für den Neustart von Jenkins an der Eingabeaufforderung --- stackoverflow.com/questions/14869311/…
Anurag_BEHS
1
Auch Datei könnte unter ~ / .jenkins / Ordner gefunden werden
Andrii Abramov
181

Eine andere Möglichkeit besteht darin, die Konfigurationsdatei für Ihren Benutzer manuell zu bearbeiten (z. B. /var/lib/jenkins/users/username/config.xml) und den Inhalt von passwordHash zu aktualisieren :

<passwordHash>#jbcrypt:$2a$10$razd3L1aXndFfBNHO95aj.IVrFydsxkcQCcLmujmFQzll3hcUrY7S</passwordHash>

Sobald Sie dies getan haben, starten Sie Jenkins einfach neu und melden Sie sich mit diesem Passwort an:

test
Arseny
quelle
1
Was ist, wenn dieser Eintrag nicht vorhanden ist - wo soll er tatsächlich abgelegt werden?
Serup
2
Das <passwordHash>XML-Tag ist ein untergeordnetes Element von <hudson.security.HudsonPrivateSecurityRealm_-Details>. Sehen Sie sich den Standard-Administrator an, um eine Vorstellung von der gesamten XML-Struktur zu erhalten.
ivandov
2
Dies ist eine gute Lösung, die die Installation sicher hält. Wie generiert man aus Neugier diesen Passwort-Hash?
kontextify
Danke, genau das habe ich gebraucht!
Matt Cavanagh
Das Ändern des Inhalts der Datei in C: \ Users \ <USER> \ .jenkins \ users \ admin hat zur Behebung des Problems beigetragen
Sakshi Singla
45

Ich fand die fragliche Datei in / var / lib / jenkins mit dem Namen config.xml und änderte sie, um das Problem zu beheben.

Ryanzec
quelle
1
Ich benutze El-Capitan und config.xml konnte nicht im Speicherort gefunden werden
Durai Amuthan.H
@ DuraiAmuthan.H Hast du es mit Bitnami Stack installiert? Die Konfigurationsdatei würde in/Applications/jenkins-2.19.3-0/apps/jenkins/jenkins_home/users/admin/config.xml
siegy22
@ryanzec, Nowakers Antwort verwendet dieselbe Datei, aber es ist besser erklärt, Sie sollten in Betracht ziehen, sie als die richtige Antwort zu akzeptieren.
Katu
wo wir die Datei in Höhe Sierra finden
Prabakaran iOS
44

Das <passwordHash>Element in users/<username>/config.xmlakzeptiert Daten des Formats

salt:sha256("password{salt}")

Wenn also Ihr Salz barund Ihr Passwort ist foo, können Sie den SHA256 wie folgt herstellen:

echo -n 'foo{bar}' | sha256sum

Sie sollten 7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349als Ergebnis erhalten. Nehmen Sie den Hasch und geben Sie ihn mit dem Salz in <passwordHash>:

<passwordHash>bar:7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349</passwordHash>

Starten Sie Jenkins neu und melden Sie sich mit dem Kennwort an foo. Setzen Sie dann Ihr Passwort auf etwas anderes zurück. (Jenkins verwendet standardmäßig bcrypt, und eine Runde SHA256 ist keine sichere Methode zum Speichern von Kennwörtern. Beim Zurücksetzen Ihres Kennworts wird ein bcrypt-Hash gespeichert.)

uckelman
quelle
1
Das scheint nicht zu funktionieren. Ein Beispiel beginnt mit einem Salt von #jbscrypt und definiert dann die Verschlüsselungsfelder $ 2a $ 10 $. Was bedeuten diese?
jrwren
Meine Antwort hat bei mir funktioniert. Die zusätzlichen Felder, die Sie sehen, beziehen sich auf ein anderes Hash-Format. Die Bibliothek, die Jenkins für die Verarbeitung von Hash-Passwörtern verwendet, unterstützt mehr als ein Format. Das jbcrypt-Format, auf das Sie sich beziehen, ist sicherer als sha256 mit einem Salt, aber das sha256 + salt-Format kann einfach über die Befehlszeile erstellt werden. Denken Sie daran, dass der Zweck der Übung darin besteht, wieder in Jenkins einzusteigen und dann Ändern Sie das Passwort über die Weboberfläche von Jenkins.
uckelman
Das hat auch bei mir nicht funktioniert. Ich werde versuchen, mehr Informationen über bcrypt zu finden
Laurent Picquet
es hat bei mir funktioniert. Ich habe die folgenden Befehle verwendet: `` `PASSWORD_DIGEST =" $ (echo -n "$ {ADMIN_PASSWORD} {$ {SALT}}" | sha256sum | awk '{print $ 1}') "echo" Passwort-Digest: $ PASSWORD_DIGEST "sed -i -e "s # <passwordHash>. * </ passwordHash> # <passwordHash> $ {SALT}: $ {PASSWORD_DIGEST} </ passwordHash> #" "/ usr / share / jenkins / ref / users / admin / config .xml "sed -i -e" s # <apiToken>. * </ apiToken> # <apiToken> $ {API_TOKEN} </ apiToken> # "" / usr / share / jenkins / ref / users / admin / config. xml "` ``
Laurent Picquet
Danke mil. Verwendete genau die gleichen Werte und wirkte wie ein Zauber. Habe mich wieder reingelegt und den Pass zurückgesetzt.
26

In El-Capitan kann config.xml nicht unter gefunden werden

/ var / lib / jenkins /

Es ist verfügbar in

~ / .jenkins

Öffnen Sie danach, wie bereits erwähnt, die Datei config.xml und nehmen Sie die folgenden Änderungen vor

  • In diesem ersetzen <useSecurity>true</useSecurity>durch<useSecurity>false</useSecurity>

  • Entfernen <authorizationStrategy>und<securityRealm>

  • Speichern Sie es und starten Sie die Jenkins neu ( sudo service jenkins restart )

Durai Amuthan.H
quelle
Ich kann die Datei config.xml nicht bearbeiten. Wenn ich versuche, es mit vim zu speichern, wird angezeigt, dass es sich um eine schreibgeschützte Datei handelt und eine Operation zum Schreiben des Zugriffs nicht zulässig ist.
Emjey
19

Die Antwort zum Ändern war richtig. Ich denke jedoch, es sollte erwähnt werden, dass dies /var/lib/jenkins/config.xmlungefähr so ​​aussieht, wenn Sie "Projektbasierte Matrix-Autorisierungsstrategie" aktiviert haben. Das Löschen /var/lib/jenkins/config.xmlund Neustarten von Jenkins reicht ebenfalls aus. Ich habe auch die Benutzer gelöscht /var/lib/jenkins/users, um von vorne zu beginnen.

<authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy">
    <permission>hudson.model.Computer.Configure:jenkins-admin</permission>
    <permission>hudson.model.Computer.Connect:jenkins-admin</permission>
    <permission>hudson.model.Computer.Create:jenkins-admin</permission>
    <permission>hudson.model.Computer.Delete:jenkins-admin</permission>
    <permission>hudson.model.Computer.Disconnect:jenkins-admin</permission>
    <!-- if this is missing for your user and it is the only one, bad luck -->
    <permission>hudson.model.Hudson.Administer:jenkins-admin</permission>
    <permission>hudson.model.Hudson.Read:jenkins-admin</permission>
    <permission>hudson.model.Hudson.RunScripts:jenkins-admin</permission>
    <permission>hudson.model.Item.Build:jenkins-admin</permission>
    <permission>hudson.model.Item.Cancel:jenkins-admin</permission>
    <permission>hudson.model.Item.Configure:jenkins-admin</permission>
    <permission>hudson.model.Item.Create:jenkins-admin</permission>
    <permission>hudson.model.Item.Delete:jenkins-admin</permission>
    <permission>hudson.model.Item.Discover:jenkins-admin</permission>
    <permission>hudson.model.Item.Read:jenkins-admin</permission>
    <permission>hudson.model.Item.Workspace:jenkins-admin</permission>
    <permission>hudson.model.View.Configure:jenkins-admin</permission>
    <permission>hudson.model.View.Create:jenkins-admin</permission>
    <permission>hudson.model.View.Delete:jenkins-admin</permission>
    <permission>hudson.model.View.Read:jenkins-admin</permission>
  </authorizationStrategy>
user637338
quelle
14

So setzen Sie es zurück, ohne die Sicherheit zu deaktivieren, wenn Sie Matrixberechtigungen verwenden (wahrscheinlich leicht an andere Anmeldemethoden anpassbar):

  1. In config.xmlsetzen disableSignupauf false.
  2. Starten Sie Jenkins neu.
  3. Gehen Sie zur Jenkins-Webseite und melden Sie sich bei einem neuen Benutzer an .
  4. In config.xmlduplizieren eine der <permission>hudson.model.Hudson.Administer:username</permission>Linien und ersetzt usernamemit dem neuen Benutzer an .
  5. Wenn es sich um einen privaten Server handelt, setzen Sie ihn disableSignupwieder auf truein config.xml.
  6. Starten Sie Jenkins neu.
  7. Gehen Sie zur Jenkins-Webseite und melden Sie sich als neuer Benutzer an .
  8. Setzen Sie das Passwort des ursprünglichen Benutzers zurück.
  9. Melden Sie sich als ursprünglicher Benutzer an.

Optionale Bereinigung:

  1. Löschen Sie den neuen Benutzer.
  2. Löschen Sie die temporäre <permission>Zeile in config.xml.

Bei dieser Antwort wurden keine Wertpapiere beschädigt.

l0b0
quelle
Zum Bereinigungssatz hinzufügen disableSignup wieder auf true setzen und Jenkins neu starten
Marc
14

Führen Sie die folgenden Befehle aus, um die Jenkins-Sicherheit in einfachen Schritten unter Linux zu deaktivieren:

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

Es entfernt useSecurityund authorizationStrategyZeilen aus Ihrer config.xmlRoot-Konfigurationsdatei und startet Ihre Jenkins neu.

Siehe auch: Deaktivieren Sie die Sicherheit auf der Jenkins-Website


Nachdem Sie den Zugriff auf Jenkins erhalten haben, können Sie die Sicherheit auf Ihrer Seite " Globale Sicherheit konfigurieren" wieder aktivieren, indem Sie " Zugriffskontrolle / Sicherheitsbereich" auswählen . Vergessen Sie danach nicht , den Administrator zu erstellen .

Kenorb
quelle
Es hat bei mir funktioniert, aber es überspringt jetzt die Autorisierung.
Hemanto
@hemanto Sie müssen die Sicherheit aktivieren, um die Autorisierung wieder zu aktivieren. Ich habe die Antwort aktualisiert.
Kenorb
12

Möglicherweise sperren Sie sich aufgrund eines Berechtigungsfehlers versehentlich aus Jenkins aus und haben keinen serverseitigen Zugriff, um zum Jenkins-Benutzer oder Root zu wechseln. Sie können einen Job in Jenkins erstellen und diesen dem Shell-Skript hinzufügen:

sed -i 's/<useSecurity>true/<useSecurity>false/' ~/config.xml

Klicken Sie dann auf Jetzt erstellen und starten Sie Jenkins neu (oder den Server, falls erforderlich!).

Nick
quelle
1
Wie schaffen Sie einen Job in Jenkins, falls Sie selbst davon ausgeschlossen sind?
GeroldBroser setzt Monica
In diesem Fall war ein normales Chrome-Fenster angemeldet und ich habe die Sicherheitseinstellungen geändert und in einem Inkognito-Fenster getestet, bevor ich mich vom Hauptfenster abgemeldet habe. Bei dem Test konnte ich mich nicht anmelden, aber meine Sitzungen wurden im Hauptfenster fortgesetzt, damit ich den Schaden reparieren konnte.
Nick
1
Ich glaube, ein Teil der Sicherheitseinstellungen, die ich geändert hatte, bedeutete auch, dass meine Authentifizierungssitzung nicht mehr berechtigt war, Jenkins Sicherheitskonfigurationen zu ändern.
Nick
Stoßen Sie nach der Aktivierung auf dieses Problem ProjectMatrixAuthorization. Wenn ich die Änderung vornehme und Jenkins neu starte, wird in der Jenkins-Benutzeroberfläche eine Java-Ausnahme angezeigt. Um dies zu beheben, entfernte ich auch die Zeile mit authorizationStrategyund es war wieder in Ordnung. Jenkins las es beim nächsten Start als leeres Tag.
Peter Schneider
12

Wir können das Passwort zurücksetzen, während die Sicherheit aktiviert bleibt.

Die Datei config.xml in / var / lib / Jenkins / users / admin / verhält sich ähnlich wie die / etc / shadow-Datei Linux- oder UNIX-ähnliche Systeme oder die SAM-Datei in Windows, in dem Sinne, dass sie den Hash von speichert Passwort des Kontos.

Wenn Sie das Kennwort zurücksetzen müssen, ohne sich anzumelden, können Sie diese Datei bearbeiten und den alten Hash durch einen neuen ersetzen, der aus bcrypt generiert wurde:

$ pip install bcrypt
$ python
>>> import bcrypt
>>> bcrypt.hashpw("yourpassword", bcrypt.gensalt(rounds=10, prefix=b"2a"))
'YOUR_HASH'

Dadurch wird Ihr Hash mit dem Präfix 2a ausgegeben, dem richtigen Präfix für Jenkins-Hashes.

Bearbeiten Sie nun die Datei config.xml:

...
<passwordHash>#jbcrypt:REPLACE_THIS</passwordHash>
...

Sobald Sie den neuen Hash eingefügt haben, setzen Sie Jenkins zurück:

(wenn Sie sich auf einem System mit systemd befinden):

sudo systemctl restart Jenkins

Sie können sich jetzt anmelden und haben Ihr System keine Sekunde offen gelassen.

Reem
quelle
5
\.jenkins\secrets\initialAdminPassword

Kopieren Sie das Kennwort aus der Datei initialAdminPassword und fügen Sie es in die Jenkins ein.

Shivam
quelle
4

Um die standardmäßige Sicherheit für Jenkins unter Windows zu entfernen,

Sie können die in Config.xml erstellte Datei Config.xml durchlaufen, die in /users/{UserName}/.jenkins erstellt wurde.

In dieser Datei können Sie den Code von ändern

<useSecurity>true</useSecurity>

Zu,

<useSecurity>false</useSecurity>
Krutik
quelle
4

1 Überprüfen Sie zuerst den Speicherort, wenn Sie War oder Linux oder Windows basierend darauf installieren

Zum Beispiel, wenn Krieg unter Linux und für Admin-Benutzer

/home/"User_NAME"/.jenkins/users/admin/config.xml

Gehe zu diesem Tag nach #jbcrypt:

<passwordHash>#jbcrypt:$2a$10$3DzCGLQr2oYXtcot4o0rB.wYi5kth6e45tcPpRFsuYqzLZfn1pcWK</passwordHash>

Ändern Sie dieses Passwort mithilfe einer beliebigen Website für den bcrypt-Hash-Generator

https://www.dailycred.com/article/bcrypt-calculator

Stellen Sie sicher, dass es mit $ 2a beginnt, da dieses von Jenkins verwendet wird

Ismail
quelle
4

Schritt 1: Gehen Sie in das Verzeichnis cd .jenkins / secret, dann erhalten Sie ein 'initialAdminPassword'.

Schritt 2: nano initialAdminPassword

Sie erhalten ein Passwort

Shaik Zeeshan
quelle
2

Das Ändern von <useSecurity>true</useSecurity>auf <useSecurity>false</useSecurity>wird nicht ausreichen. Sie sollten auch Elemente entfernen <authorizationStrategy>und <securityRealm>Ihren Jenkins-Server neu starten, indem Sie dies tun sudo service jenkins restart.

Denken Sie daran, dass die Einstellung <usesecurity>auf falsenur ein Problem für Sie verursachen kann, da diese Anweisungen in der offiziellen Dokumentation hier aufgeführt sind .

Musharraf Al-Tamimi
quelle
1

Ein einfacher Ausweg besteht darin, sich mit dem Administrator psw bei Ihrem Administrator anzumelden:

  • Wechseln Sie zum Root-Benutzer: sudo su -
  • Kopieren Sie das Passwort: xclip -sel clip < /var/lib/jenkins/secrets/initialAdminPassword
  • Melden Sie sich mit admin an und drücken Sie ctrl + vauf das Passwort-Eingabefeld.

Installieren Sie xclip, wenn Sie es nicht haben:

  • $ sudo apt-get install xclip
Thomas Modeneis
quelle
Die Verwendung des Standardkennworts hat bei mir funktioniert. Um es einfach zu halten, können Sie einfach 'cat secret / initialAdminPassword' ausführen, anstatt xclip einmalig zu installieren.
Paul
Manchmal ist dieses Passwort nicht vorhanden. Ich bin nicht sicher, wie Sie diese Konfiguration umgehen können, aber für mich ist sie nicht vorhanden und ich musste config.xml
vinicius.hisao
1

Jenkins über KUBENETES und Docker

Im Falle von Jenkins über einen Container von einem verwalteten Kubernetes POD ist ein wenig komplexer , da: kubectl exec PODID --namespace=jenkins -it -- /bin/bashwerden Sie den Zugriff ermöglichen , direkt auf den Behälter läuft Jenkins, aber Sie werden nicht Root - Zugriff haben , sudo, viund viele Befehle sind nicht verfügbar und daher eine Abhilfe wird gebraucht.

Verwenden kubectl describe pod [...]Sie diese Option, um den Knoten zu finden, auf dem Ihr Pod ausgeführt wird, sowie die Container-ID(docker://...)

  • SSH in den Knoten
  • Ausführen, docker exec -ti -u root -- /bin/bashum auf den Container mit Root-Berechtigungen zuzugreifen
  • apt-get update
  • sudo apt-get install vim

Der zweite Unterschied besteht darin, dass die Jenkins-Konfigurationsdatei in einem anderen Pfad abgelegt wird, der dem Einhängepunkt des persistenten Volumes entspricht. Das heißt /var/jenkins_home, dieser Speicherort kann sich in Zukunft ändern. Überprüfen Sie, ob er ausgeführt wird df.

Deaktivieren Sie dann die Sicherheit - ändern Sie in der /var/jenkins_home/jenkins/config.xmlDatei true in false .

<useSecurity>false</useSecurity>

Jetzt reicht es aus, die Jenkins neu zu starten. Diese Aktion führt dazu, dass der Container und der Pod sterben. Sie wird in einigen Sekunden erneut erstellt, wobei die Konfiguration aktualisiert wird (und alle Chancen wie vi, Update gelöscht werden), dank des anhaltenden Volumes.

Die gesamte Lösung wurde auf Google Kubernetes Engine getestet. UPDATE Beachten Sie, dass Sie ps -auxdas Kennwort auch im Klartext ausführen können , auch ohne Root-Zugriff.

jenkins@jenkins-87c47bbb8-g87nw:/$ps -aux
[...]
jenkins [..] -jar /usr/share/jenkins/jenkins.war --argumentsRealm.passwd.jenkins=password --argumentsRealm.roles.jenkins=admin
[...]
GalloCedrone
quelle
1

Oft haben Sie keine Berechtigung zum Bearbeiten der Datei config.xml.

Am einfachsten wäre es, config.xmlmit dem Befehl sudo ein Zurück zu nehmen und zu löschen.

Starten Sie die Jenkins mit dem Befehl neu sudo /etc/init.d/jenkins restart

Dadurch wird die gesamte Sicherheit in Jenkins deaktiviert und die Anmeldeoption wird ausgeblendet

Emjey
quelle
Wenn Sie config.xml mit sudo löschen können, können Sie es auch mit sudo bearbeiten. zB sudo vi ...
Lee Meador
1

Mit bcrypt können Sie dieses Problem lösen. Erweitern der @ Reem-Antwort für jemanden, der versucht, den Prozess mithilfe von Bash und Python zu automatisieren.

#!/bin/bash

pip install bcrypt
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install xmlstarlet

cat > /tmp/jenkinsHash.py <<EOF
import bcrypt
import sys

if not sys.argv[1]:
  sys.exit(10)

plaintext_pwd=sys.argv[1]
encrypted_pwd=bcrypt.hashpw(sys.argv[1], bcrypt.gensalt(rounds=10, prefix=b"2a"))
isCorrect=bcrypt.checkpw(plaintext_pwd, encrypted_pwd)

if not isCorrect:
   sys.exit(20);

print "{}".format(encrypted_pwd)
EOF

chmod +x /tmp/jenkinsHash.py
cd /var/lib/jenkins/users/admin*
pwd
while (( 1 )); do
    echo "Waiting for Jenkins to generate admin user's config file ..."

    if [[ -f "./config.xml" ]]; then
        break
    fi

    sleep 10
done

echo "Admin config file created"

admin_password=$(python /tmp/jenkinsHash.py password 2>&1)

# Repalcing the new passowrd
xmlstarlet -q ed --inplace -u "/user/properties/hudson.security.HudsonPrivateSecurityRealm_-Details/passwordHash" -v '#jbcrypt:'"$admin_password" config.xml

# Restart
systemctl restart jenkins
sleep 10

Ich habe das Passwort hier fest codiert, aber es kann je nach Anforderung eine Benutzereingabe sein. Stellen Sie außerdem sicher, dass sleepalle anderen Befehle, die sich um Jenkins drehen, fehlschlagen.

Ismail
quelle
1

Verwenden Sie die JAVA-Eigenschaft, um sowohl die Sicherheit als auch den Startassistenten ganz einfach zu deaktivieren:

-Djenkins.install.runSetupWizard=false

Das Schöne daran ist, dass Sie es in einem Docker-Image verwenden können, sodass Ihr Container immer sofort ohne Anmeldebildschirm gestartet wird:

# Dockerfile
FROM jenkins/jenkins:lts
ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false

Beachten Sie, dass sich die Jenkins-Datei config.xml, wie von anderen erwähnt, /var/jenkins_homeim Image befindet. Die Verwendung sedzum Ändern aus der Docker-Datei schlägt jedoch fehl, da die Datei config.xml (vermutlich) erst nach dem Start des Servers vorhanden ist.

Rhabarber
quelle
0

Ich hatte ein ähnliches Problem und nach der Antwort von ArtB

Ich stellte fest, dass mein Benutzer nicht die richtigen Konfigurationen hatte. Also, was ich getan habe:

Hinweis: Das manuelle Ändern solcher XML-Dateien ist riskant. Tun Sie dies auf eigenes Risiko. Da ich bereits ausgesperrt war, hatte ich nicht viel zu verlieren. AFAIK Im schlimmsten Fall hätte ich die Datei ~ / .jenkins / config.xml wie im vorherigen Beitrag erwähnt gelöscht.

**> 1. ssh zur jenkins maschine

  1. cd ~ / .jenkins (Ich denke, dass einige Installationen es unter /var/lib/jenkins/config.xml ablegen, aber in meinem Fall nicht)
  2. Fügen Sie in der Datei vi config.xml und unter dem Tag authorisationStrategy xml den folgenden Abschnitt hinzu (ich habe nur meinen Benutzernamen anstelle von "put-your-username" verwendet).
  3. Jenkins neu starten. in meinem Fall als Root-Dienst tomcat7 stop; ;; Service Tomcat7 starten
  4. Versuchen Sie erneut, sich anzumelden. (arbeitete für mich) **

unter

hinzufügen:

<permission>hudson.model.Computer.Build:put-your-username</permission>
<permission>hudson.model.Computer.Configure:put-your-username</permission>
<permission>hudson.model.Computer.Connect:put-your-username</permission>
<permission>hudson.model.Computer.Create:put-your-username</permission>
<permission>hudson.model.Computer.Delete:put-your-username</permission>
<permission>hudson.model.Computer.Disconnect:put-your-username</permission>
<permission>hudson.model.Hudson.Administer:put-your-username</permission>
<permission>hudson.model.Hudson.ConfigureUpdateCenter:put-your-username</permission>
<permission>hudson.model.Hudson.Read:put-your-username</permission>
<permission>hudson.model.Hudson.RunScripts:put-your-username</permission>
<permission>hudson.model.Hudson.UploadPlugins:put-your-username</permission>
<permission>hudson.model.Item.Build:put-your-username</permission>
<permission>hudson.model.Item.Cancel:put-your-username</permission>
<permission>hudson.model.Item.Configure:put-your-username</permission>
<permission>hudson.model.Item.Create:put-your-username</permission>
<permission>hudson.model.Item.Delete:put-your-username</permission>
<permission>hudson.model.Item.Discover:put-your-username</permission>
<permission>hudson.model.Item.Read:put-your-username</permission>
<permission>hudson.model.Item.Workspace:put-your-username</permission>
<permission>hudson.model.Run.Delete:put-your-username</permission>
<permission>hudson.model.Run.Update:put-your-username</permission>
<permission>hudson.model.View.Configure:put-your-username</permission>
<permission>hudson.model.View.Create:put-your-username</permission>
<permission>hudson.model.View.Delete:put-your-username</permission>
<permission>hudson.model.View.Read:put-your-username</permission>
<permission>hudson.scm.SCM.Tag:put-your-username</permission>

Jetzt können Sie in verschiedene Richtungen gehen. Zum Beispiel hatte ich github oauth Integration, also hätte ich versuchen können, die authorisationStrategy durch etwas wie das folgende zu ersetzen:

Hinweis: In meinem Fall hat es funktioniert, weil ich ein bestimmtes Github-Oauth-Plugin hatte, das bereits konfiguriert war. Es ist also riskanter als die vorherige Lösung.

  <authorizationStrategy class="org.jenkinsci.plugins.GithubAuthorizationStrategy" plugin="[email protected]">
    <rootACL>
      <organizationNameList class="linked-list">
        <string></string>
      </organizationNameList>
      <adminUserNameList class="linked-list">
        <string>put-your-username</string>
        <string>username2</string>
        <string>username3</string>
        <string>username_4_etc_put_username_that_will_become_administrator</string>
      </adminUserNameList>
      <authenticatedUserReadPermission>true</authenticatedUserReadPermission>
      <allowGithubWebHookPermission>false</allowGithubWebHookPermission>
      <allowCcTrayPermission>false</allowCcTrayPermission>
      <allowAnonymousReadPermission>false</allowAnonymousReadPermission>
    </rootACL>
  </authorizationStrategy>
drordk
quelle
0

Bearbeiten Sie die Datei $ JENKINS_HOME / config.xml und ändern Sie die Sicherheitskonfiguration folgendermaßen:

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

Danach starten Sie Jenkins neu.

richarbernal
quelle
0

Für jemanden, der macOS verwendet, kann die neue Version nur von Homebrew installiert werden. Zum Ausruhen muss diese Befehlszeile Folgendes verwenden:

brew services restart jenkins-lts
iman kazemayni
quelle