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

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

В чем дело?

Erik
источник
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после создания пользователя, чтобы сделать пароль пустым. Обратите внимание, что не все системы позволяют пользователям с пустым паролем войти в систему.

pallxk
источник
3
Похоже, что это не работает в версии 16 Ubuntu
Даниэль Тейт
@DanielTate работает с: unix.stackexchange.com/a/472968/32558
Сиро Сантилли,
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>терминала, как упомянуто в этом ответе, хотя я не пытался сделать это сам.

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
источник
2

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

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

Вы сможете

su $username

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

Дуглас Кругман
источник