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


22

У ОС X можна мати користувачів без паролів. Якщо ви їх оглянете за допомогою dsclпароля, з’явіться як *. Це використовується для системних користувачів , таких як користувачі для баз даних , таких як mysql, і pgsqlт.д. Що приємно про це полягає в тому , що ці користувачі не відображається на екрані входу в систему, і ви не можете увійти в них без і sudoт.д.

Після видалення такого користувача, який випробовував деякі речі, я хотів його відтворити, але не зміг. Мені вдалося отримати користувача з порожнім паролем, і я можу встановити його *. Але жоден ефект не мав такого ж ефекту, як вище, як користувач з'явився на моєму екрані входу.

Як створити такого користувача?


В Linux ви передаєте прапор --disabled-password adduser. Можливо, OS X має щось подібне у своєму репертуарі командного рядка?
БР

Ти мав на увазі; користувач може увійти без пароля або взагалі не може увійти, оскільки не встановлено пароль?
Кріс Хуан-Лівер

1
Я зауважую, що ви не прийняли відповідь ... Однією з вимог залишатися поза різними списками xdm є значно низька кількість користувачів. у багатьох системах useraddпочинає додавати ідентифікатори на 1000, і менеджери входу не показуватимуть ідентифікатори користувачів нижче цього, але все вище. тому, хоча це не відповідь на це питання, це може бути вирішенням проблеми. Зверніть увагу, що 1000 довільне і може бути нижчим або більшим у вашому розповсюдженні. Щоб виправити, просто модифікуйте запис користувача, /etc/passwdщоб він мав менший uid. Тепер мені потрібно подати подібне запитання.
xenoterracide

@xenoterracide: Коли я відтворив користувача, я дав йому старий ідентифікатор, його видалив користувач pgsql, який має ідентифікатор на один вищий, ніж той, що є mysql, тому я впевнений, що це не вплинуло в цьому випадку , але все одно дякую за інформацію
googletorp

Відповіді:


6

Ви можете запустити passwd --delete <username>після створення користувача за допомогою adduser. Після цього ви зможете увійти, не ввівши пароль.


4
Я думаю, що це абсолютно протилежне тому, що тут просять.
Шадур

Спочатку я подумав, що це правильна (або найкраща) відповідь, поки я не перечитав питання ОП, яке згадується про "користувача системи" та не відображається на "екрані входу". Цей спосіб відобразиться на екрані входу, і ви можете "судо" використовувати цей метод.
HidekiAI

3

Користувач в / etc / passwd з домашнім каталогом / dev / null та оболонкою / sbin / nologin, може використовуватися для вибору команд, але фактично не може бути ввійшов у систему;

з мого / etc / passwd

tcpdump:x:104:441:added by portage for tcpdump:/dev/null:/sbin/nologin

Я наполовину пам’ятаю, це змусить його зникнути з екрана входу в XDM, але я більше не використовую XDM, тому це здогад:


Це правильна відповідь, оскільки ОП попросив обліковий запис, який ви не можете "судо" або відобразити на "екрані входу", встановивши для оболонки "/ sbin / nologin". Варто зазначити одне, що ОП вимагає "користувача системи", а також слід зазначити, що "useradd --system" слід використовувати для створення UID в низькій кількості (як це робить portage / ebuild)
HidekiAI

3

Ви можете використовувати usermod, що дозволить вимкнути пароль, !скоріше, ніж an *.

usermod -L <username>

На сторінці людини на usermod:

-L, --lock Lock a user's password. This puts a '!' in front of the encrypted password, effectively disabling the password.

2

Використання dsclдало б

dscl . -passwd /Users/myuser ""

Це, на відміну від більшості відповідей над ним, насправді працювало на мене.
GroovyCakes

1

Я не можу бути впевнений щодо OSX, але у FreeBSD ви можете використовувати:

pw add user mymuser -g mygroup -s /nonexistent -h -

значення -переданого в -hпараметр вказує pwвстановити поле пароля в master.passwd *, таким чином створивши обліковий запис без входу. Встановлення оболонки не є строго необхідним, але це дозволяє уникнути перевірки оболонки з /etc/pw.conf.




-1

У Linux я використовую:

sudo useradd -r -p \* -s /sbin/nologin -c "Comment My Daemon,,,"  -d "/var/uuu"  myuser

Наступною альтернативою має бути більш кросова платформа (якщо -rопція відсутня):

sudo useradd -K UID_MIN=100 -K UID_MAX=499 -K GID_MIN=100 -K GID_MAX=499 -p \* -s /sbin/nologin -c "Comment My Daemon,,,"  -d "/var/uuu"  myuser

Тут:

  • пароль у / etc / shadow буде встановлено на *. Без -p \*нього не буде!

  • оболонка буде /sbin/nologin(Ви також можете використовувати /bin/false, але я думаю, що /binможе бути встановлено занадто пізно в деяких системах). Тому користувач не може увійти

  • -d встановлює homedir користувача

ВАЖЛИВА ПРИМІТКА

Тут -rстворюється користувач системи:

Цей прапор використовується для створення облікового запису системи. Тобто користувач із UIDменшим значенням, UID_MINвизначеним у /etc/login.defs, і чий пароль не закінчується. Зауважте, що useradd не створить домашній каталог для такого користувача, незалежно від налаштування за замовчуванням у /etc/login.defs . Вам потрібно вказати -mопцію, якщо ви хочете створити домашній каталог для створення облікового запису системи. Цей варіант додав Red Hat .

Можливість -rу вашій системі відсутня. Отже, щоб створити користувача системи, який не відображається на екрані входу, я думаю, ви можете скористатися -Kопцією. Що - щось на кшталт: -K UID_MIN=100 -K UID_MAX=499. Ви можете спробувати варіант, як:

-K UID_MAX=$(cat /etc/login.defs | grep ^UID_MIN | awk '{print $2}')

автоматично визначати вас UID_MAX, але я не перевіряв на OS X. Ви будете потребувати використовувати SYS_UID_MAXдля , UID_MINякщо це розкоментувати в /etc/login.defs

Те саме стосується GID_MAXі GID_MINідентифікатора системної групи. (Дивіться, GID_MINі якщо це не коментуєтьсяSYS_GID_MAX в /etc/login.defs, щоб використовувати як GID_MAX)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.