Использование «su -» для смены пользователя с учетом «Нет пароля для пользователя»

16

В частности, я пытаюсь проверить что-то на своем сервере сборки, переключившись на пользователя "jenkins":

sudo su - jenkins
No passwd entry for user 'jenkins'
kevlarjacket
источник
1
adduser jenkins
Ипор Сирсер
@IporSircer Спасибо, да, похоже, что нет пользователя jenkins.
kevlarjacket

Ответы:

10

Сообщение об ошибке в значительной степени говорит само за себя. Это говорит о том, что у пользователя jenkinsнет записи в /etc/passwdфайле, то есть пользователь не существует в системе.

Когда вы выполняете какие-либо операции, связанные с пользователем, для которых требуется имя пользователя, пароль, домашний каталог, информация оболочки, /etc/passwdсначала обращаются к файлу. Нет записи в этом файле, приводящей к самой ошибке, которую вы получаете. Поэтому вам нужно сначала создать пользователя ( useradd/ adduser). В качестве примечания, при необходимости вы должны создать любого конкретного пользователя службы (не человека), например, jenkinsкак системный пользователь.

heemayl
источник
11
Я бы сказал, что это не говорит само за себя. Ошибка связана с паролем, а проблема заключается в отсутствии пользователя. Если бы ошибка была, пользователя не существует, что само собой разумеется.
YannickSSE
1
@YannickSSE сообщение об ошибке не о пароле, а о passwd, который является традиционной базой данных учетных записей пользователей в системе (находящихся в ней /etc/passwd). В большинстве современных систем пароли как таковые хранятся в другом месте - часто в /etc/shadow.
Петер
4

После быстрого поиска «Список всех пользователей в Linux» я нашел этот ответ и выполнил следующую команду:

cut -d: -f1 /etc/passwd

и, как предположил @Ipor Sircer, этот пользователь на самом деле не существует, и я должен добавить его:

adduser jenkins
kevlarjacket
источник
Это решило вашу проблему? Является ли создание jenkinsпользователя самостоятельно тем же, что и сам созданный пользователем jenkins?
Reiley