Создание пользователя без пароля


66

Я пытаюсь создать пользователя без пароля, как это:

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos ‘User for managing of git version control’ \
   --group \
   --disabled-password \
   --home /home/git \
   git

Он создан хорошо. Но когда я пытаюсь войти под пользователем git, я получаю пароль:

su git
Password:...

Когда я оставляю это пустым, я получаю ошибку:

su: Authentication failed

В чем дело?


1
Ничего плохого, аутентификация не удалась, как ожидалось. Вы не получите сообщение об ошибке «пароль отсутствует, вы не можете войти».
Scai

Но мне нужно создать папку .ssh под пользователем git, как мне это сделать?
Эрик

1
Либо создайте его как root и установите правильные разрешения, либо выполните su gitкак root, если вам не нужно вводить пароль.
Scai

4
Используя chmodи chown.
Scai

1
Не по теме, но это "пользователь", а не "пользователь". writersdigest.com/online-editor/…
Дэвид Баукум

Ответы:


31

Вы создали пользователя с «отключенным паролем», что означает, что нет пароля, который позволял бы вам входить в систему, как это использовалось. Это отличается от создания пользователя, в который любой может войти, без указания пароля, что достигается путем указания пустого пароля и очень редко полезно.

Для того, чтобы выполнять команды от имени таких «системных» пользователей, которые не входят в систему нормально, вам нужно прыгнуть через учетную запись root:

su -c 'su git -c "git init"'

или же

sudo -u git git init

Если вы хотите, чтобы определенные пользователи могли запускать команды от имени gitпользователя, не позволяя им запускать команды от имени пользователя root, настройте sudo (запустите visudoот имени пользователя root и добавьте строку вроде %gitters ALL = (git) ALL).


@JulienRicard Э, да, а? Есть несколько способов понять «пользователь без пароля», и я отвечаю за вариант использования, приведенный в вопросе. Например, вопрос о создании гостевого пользователя был бы другим вопросом.
Жиль "ТАК - перестань быть злым"

41

--disabled-passwordОпция не будет установить пароль, не означает отсутствие пароля является законной, но Логин еще можно (например , с помощью ключей SSH RSA).

Чтобы создать пользователя без пароля, используйте passwd -d $usernameпосле создания пользователя, чтобы сделать пароль пустым. Обратите внимание, что не все системы позволяют пользователям с пустым паролем войти в систему.


3
Похоже, что это не работает в версии 16 Ubuntu
Даниэль Тейт


9

Если вы хотите получить доступ к системе под пользователем git, вы должны использовать sudo:

sudo -s -u git

или же

sudo su - git

4

Создать пользователя с пустым паролем

sudo useradd test-user-0
echo test-user-0:U6aMy0wojraho | sudo chpasswd -e
su test-user-0

Запрос пароля все еще показывает, к сожалению.

Но если вы просто нажмете Enter, ничего не печатая, и он войдет как пользователь test-user-0.

В -eфлагах говорят , chpasswdчто пароль уже зашифрован, и U6aMy0wojrahoявляются хэшем пустой строки.

Проверено на Ubuntu 18.04.

Терминал автологин с getty -a

По крайней мере, на терминале вам не нужно создавать пользователя без пароля, чтобы позволить кому-то не вводить свои пароли каждый раз.

Я смог сделать это на BusyBox, изменив inittab: Как автоматически войти в систему, не вводя имя пользователя или пароль root в Buildroot BusyBox init?

Поэтому я считаю, что не должно быть очень сложно адаптировать эту технику, изменив системные сценарии initd Ubuntu 18.04 для настройки getty -a <user>терминала, как упомянуто в этом ответе, хотя я не пытался сделать это сам.


2

Я думаю, что это то, что вы хотите:

adduser --disabled-password --shell /bin/bash --gecos "User" $username

Вы сможете

su $username

запускать команды от имени этого пользователя, в / bin / bash или в любой другой оболочке, которую вы укажете. --gecos "Пользователь" просто поместите "Пользователь" в поле комментария, чтобы вам не предлагали эту информацию. Вы можете положить все, что вы хотите в этом поле.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.