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


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.