Użycie „su -” do zmiany użytkownika, biorąc pod uwagę „Brak hasła dla użytkownika”

16

W szczególności próbuję przetestować coś na moim serwerze kompilacji, przechodząc do użytkownika „jenkins”:

sudo su - jenkins
No passwd entry for user 'jenkins'
kevlarjacket
źródło
1
adduser jenkins
Ipor Sircer,
@IporSircer Dzięki, tak, wygląda na to, że nie ma użytkownika Jenkins.
kevlarjacket

Odpowiedzi:

10

Komunikat o błędzie jest dość oczywisty. Mówi, że użytkownik jenkinsnie ma wpisu w /etc/passwdpliku, tzn. Użytkownik nie istnieje w systemie.

Gdy wykonujesz jakiekolwiek czynności związane z użytkownikiem, które wymagają nazwy użytkownika, hasła, katalogu domowego, informacji o powłoce, /etc/passwdnajpierw sprawdzany jest plik. Brak wpisu w tym pliku, który prowadzi do samego błędu, który się pojawia. Musisz najpierw utworzyć użytkownika ( useradd/ adduser). Na marginesie, o ile nie jest to konieczne, należy utworzyć dowolnego użytkownika usługi (innego niż człowiek), np. jenkinsJako użytkownik systemu.

heemayl
źródło
11
Twierdziłbym, że nie jest to oczywiste. Błąd dotyczy hasła, a problemem jest nieistnienie użytkownika. Jeśli błąd byłby, użytkownik nie istnieje, to byłoby oczywiste.
YannickSSE
1
@YannickSSE komunikat o błędzie nie dotyczy hasła, chodzi o passwd, czyli tradycyjną bazę danych kont użytkowników w systemie (rezydujących w /etc/passwd). W większości nowoczesnych systemów hasła jako takie są przechowywane w innym miejscu - często w /etc/shadow.
peterph
4

Po szybkim wyszukiwaniu „Wyświetl wszystkich użytkowników w systemie Linux” znalazłem tę odpowiedź i uruchomiłem następujące polecenie:

cut -d: -f1 /etc/passwd

i, jak sugerował @Ipor Sircer, ten użytkownik nie istnieje i muszę go dodać:

adduser jenkins
kevlarjacket
źródło
Czy to rozwiązało problem? Czy samodzielne utworzenie jenkinsużytkownika jest takie samo jak użytkownika utworzonego przez samego Jenkinsa?
reiley