Kann Benutzer Jenkins nach der Installation von Jenkins nicht su

93

Ich habe Jenkins installiert und versuche, als Jenkins in eine Shell zu gelangen, um einen SSH-Schlüssel hinzuzufügen. Ich kann nicht scheinen, in den Jenkins-Benutzer zu su:

[root@pacmandev /]# sudo su jenkins
[root@pacmandev /]# whoami
root
[root@pacmandev /]# echo $USER
root
[root@pacmandev /]# 

Der Jenkins-Benutzer ist in meiner Datei / etc / passwd vorhanden. Runnin su jenkinsfragt nach einem Passwort, lehnt aber mein normales Passwort ab. sudo su jenkinsscheint nichts zu tun; Gleiches gilt für sudo su - jenkins. Ich bin auf CentOS.

sfendell
quelle
Benutzer existiert ... aber wahrscheinlich hat keine Schale, siehe superuser.com/questions/566041/...
thekbb
Sie müssen nicht sudo, wenn Sie root sind. Obwohl es nicht weh tut.
Thekbb
11
sudo usermod -s /bin/bash jenkins
JGB
1
Füge Jenkins keine Shell hinzu - es fehlt eine von Natur aus. Im Allgemeinen möchten Sie nicht, dass sich Dienstkonten interaktiv anmelden können.
Thekbb

Antworten:

232

Jenkins ist ein Dienstkonto, es hat keine Shell von Entwurf. Es ist allgemein anerkannt, dass Dienstkonten sich nicht interaktiv anmelden können sollten.

Ich habe diese Frage anfangs nicht beantwortet, da es sich um ein Duplikat einer Frage handelt, die auf einen Serverfehler verschoben wurde . Ich hätte eher antworten sollen, als mit der Antwort in einem Kommentar verlinkt zu sein.

Wenn Sie sich aus irgendeinem Grund als Jenkins anmelden möchten, können Sie dies tun mit: sudo su -s /bin/bash jenkins

thekbb
quelle
8
Vielen Dank! Ich verstehe, dass das Hinzufügen einer Shell zu Jenkins eine schlechte Idee ist. Ich habe es nur gemacht, weil es Befehle in meinem Erstellungsprozess gab, bei denen ich kein Problem damit hatte, von meiner Shell aus ausgeführt zu werden, aber der Build schlug fehl, weil er sie nicht ausführen konnte. Ich wollte als Jenkins einsteigen und sehen, ob es Berechtigungsprobleme gab.
Sfendell
Die Antwort wurde bearbeitet, um die genau korrekten Informationen von @mrg über die Notwendigkeit aufzunehmen sudo.
Thekbb
1
Gibt es ein Standardkennwort, nach dem gefragt wird, weil ich mich nicht daran erinnere, bei der Installation ein Kennwort eingerichtet zu haben?
Joe Lloyd
@mrg Welches Passwort hast du benutzt?
Nabin
@ JoeLloyd Hast du das Standardkennwort herausgefunden? Wie lautet das Passwort?
Nabin
-1

Verwenden Sie den folgenden Befehl:

su -s /bin/bash jenkins
Sudipto Das
quelle
-2

Wenn Sie Jenkins im Docker verwenden. Dann sollten Sie Folgendes versuchen.

  • Zuerst müssen Sie den Jenkins-Container "Docker-Start (Containername oder Container-ID)" ausführen.

  • Führen Sie dann diesen Befehl "docker exec -it (Containername oder Container-ID) bash" aus.

Jetzt werden Sie hoffentlich als Jenkins-Benutzer verwenden.

ashik ahmed
quelle
-11

Geben Sie als root su - jenkins ein

Überprüfen Sie auch in / etc / passwd, ob sich Benutzer jenkins anmelden dürfen: Es sollte so etwas wie / bin / bash oder / bin / sh geben , ganz sicher nicht / bin / false am Ende der Zeile.

Hinweis: Sie verwenden nicht gleichzeitig su und sudo .

Rotscher
quelle
1
Das ist genau der Befehl, den das OP versucht hat ... Sie haben Recht, warum sich Jenkins nicht anmelden können - aber ich bin mit Ihrer Lösung nicht einverstanden.
Thekbb