linux - разрешить системному пользователю войти в систему?

linux - разрешить системному пользователю войти в систему?

Этот пользователь был создан с помощью этой команды:

sudo adduser --system --home=/opt/user --group user

Но теперь я хочу, чтобы этот пользователь мог войти в систему. Я могу стать этим пользователем, используя sudo, но также хотел бы напрямую войти в систему, используя пароль. Я попробовал использовать эту команду:

sudo passwd user

Позволяет мне добавить пароль для пользователя. Когда я пытаюсь войти, он входит, но тут же выходит.

решение1

Вы не можете войти как, userпотому что это системная учетная запись, которая указана опцией --system. Системные учетные записи предназначены для демонов или служб, а не для пользователей-людей, и поэтому предоставляются /bin/falseдля оболочки входа. Если вы введете grep '^user' /etc/passwd, вы получите что-то вроде этого:

user:x:117:123::/opt/user:/bin/false

Чтобы разрешить userвход в систему, вы можете использовать usermod для изменения его оболочки входа на bash:

usermod -s /bin/bash user

В качестве альтернативы вы также можете редактировать /etc/passwdвручную. Вы также можете захотеть внести некоторые другие изменения в userUID, GID и местоположение домашнего каталога.

решение2

Возможно, пользователь был создан без флага -m.

-r, --system
Create a system account.
System users will be created with no aging information in /etc/shadow, and their numeric identifiers are choosen in the SYS_UID_MIN-SYS_UID_MAX range, defined in /etc/login.defs, instead of UID_MIN-UID_MAX (and their GID counterparts for the creation of groups).

Note that useradd will not create a home directory for such an user, regardless of the default setting in /etc/login.defs (CREATE_HOME). You have to specify the -m options if you want a home directory for a system account to be created.


-m, --create-home
Create the user's home directory if it does not exist. The files and directories contained in the skeleton directory (which can be defined with the -k option) will be copied to the home directory.
useradd will create the home directory unless CREATE_HOME in /etc/login.defs is set to no.

Редактировать: Также см.этотответ на другой вопрос.

решение3

похоже, что пользователь заблокирован, попробуйте

usermod -U user

также посмотрите /etc/shadow, строка с пользователем должна начинаться так

 user:$6$SALT...

Если линия

 user:!!:..
 user:*:...

затем аккаунт блокируется.

Связанный контент