Verwenden von "su -" zum Ändern des Benutzers mit der Angabe "Kein passwd-Eintrag für Benutzer"

15

Insbesondere versuche ich, etwas auf meinem Build-Server zu testen, indem ich zum Benutzer "jenkins" wechsle:

sudo su - jenkins
No passwd entry for user 'jenkins'
Kevlarjacke
quelle
1
adduser jenkins
Ipor Sircer
@IporSircer Danke, ja, es sieht so aus, als gäbe es keinen Jenkins-Benutzer.
Kevlarjacket

Antworten:

9

Die Fehlermeldung ist so ziemlich selbsterklärend. Es heißt, der Benutzer jenkinshat keinen Eintrag in der /etc/passwdDatei, dh der Benutzer existiert nicht im System.

Wenn Sie benutzerbezogene Vorgänge ausführen, für die Benutzername, Kennwort, Basisverzeichnis und Shell-Informationen erforderlich sind, wird die /etc/passwdDatei zuerst konsultiert. Kein Eintrag in dieser Datei führt zu genau dem Fehler, den Sie erhalten. Sie müssen also zuerst den Benutzer ( useradd/ adduser) erstellen . Als Randnotiz sollten Sie, sofern nicht erforderlich, einen dienstspezifischen Benutzer (nicht menschlich) anlegen, z jenkins. B. als Systembenutzer.

heemayl
quelle
11
Ich würde argumentieren, dass es nicht selbsterklärend ist. Bei dem Fehler handelt es sich um ein Kennwort, und das Problem ist die Nichtexistenz eines Benutzers. Wenn der Fehler der Benutzer nicht vorhanden wäre, wäre das selbsterklärend.
YannickSSE
1
@YannickSSE Bei der Fehlermeldung handelt es sich nicht um ein Kennwort, sondern um passwd , die traditionelle Datenbank von Benutzerkonten auf einem System (in dem sich das Kennwort befindet /etc/passwd). Auf den meisten modernen Systemen werden die Kennwörter als solche an anderer Stelle gespeichert - häufig in /etc/shadow.
Peterph
4

Nach einer kurzen Suche nach "List all users in Linux" fand ich diese Antwort und führte den folgenden Befehl aus:

cut -d: -f1 /etc/passwd

und, wie @Ipor Sircer angedeutet hat, existiert dieser Benutzer tatsächlich nicht, und ich muss ihn hinzufügen mit:

adduser jenkins
Kevlarjacke
quelle
Hat es Ihr Problem behoben? Ist das Erstellen eines jenkinsBenutzers durch Sie dasselbe wie das Erstellen eines Benutzers durch Jenkins selbst?
Reiley