Створення користувача без пароля


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
Off topic, але це "користувач", а не "користувач". Writdigest.com/online-editor/…
Девід Баукум

Відповіді:


31

Ви створили користувача з "відключеним паролем", тобто немає пароля, який дозволить вам увійти в систему як використовується раніше. Це відрізняється від створення користувача, яким може входити кожен, так як не вводячи пароль, що досягається шляхом введення порожнього пароля і дуже рідко корисно.

Для виконання команд як таких "системних" користувачів, які не входять у систему нормально, вам потрібно перейти через кореневий обліковий запис:

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

або

sudo -u git git init

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


@JulienRicard Er, так, і? Існує кілька способів «користувач без пароля» можна зрозуміти, і я відповідаю за випадок використання, вказаний у питанні. Наприклад, питання про створення гостьового користувача було б іншим питанням.
Жиль

41

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

Щоб створити користувача без пароля, використовуйте його passwd -d $usernameпісля створення пароля. Зауважте, що не всі системи дозволяють користувачам із порожнім паролем входити в систему.


3
Схоже, це не працює у версії 16 ubuntu
Даніель Тейт

@DanielTate отримав такий вид роботи з: unix.stackexchange.com/a/472968/32558
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

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?

Тому я вважаю, що адаптувати цю техніку не слід дуже важко, модифікувавши системні сценарії ініціальної системи 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.