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 jenkins
fragt nach einem Passwort, lehnt aber mein normales Passwort ab. sudo su jenkins
scheint nichts zu tun; Gleiches gilt für sudo su - jenkins
. Ich bin auf CentOS.
sudo usermod -s /bin/bash jenkins
Antworten:
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
quelle
sudo
.Verwenden Sie den folgenden Befehl:
quelle
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.
quelle
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 .
quelle