
В OS X возможно иметь пользователей без паролей. Если вы проверите их с dscl
паролем, они будут отображаться как *
. Это используется для системных пользователей, таких как пользователи баз данных, например mysql
, pgsql
и т. д. Что хорошо в этом, так это то, что эти пользователи не отображаются на экране входа, и вы не можете войти под ними без sudo
и т. д.
После удаления такого пользователя, попробовав некоторые вещи, я хотел создать его заново, но не смог. Мне удалось получить пользователя с пустым паролем, и я мог установить пароль на *
. Но ни один из них не имел такого эффекта, как выше, так как пользователь появился на моем экране входа.
Как создать такого пользователя?
решение1
Вы можете запустить passwd --delete <username>
после создания пользователя с помощью adduser
. После этого вы сможете войти в систему без ввода пароля.
решение2
Вы можете использовать usermod
, который отключит пароль, используя !
вместо *
.
usermod -L <username>
Из страницы руководства usermod:
-L, --lock Lock a user's password. This puts a '!' in front of the encrypted password, effectively disabling the password.
решение3
Например, пользователь в /etc/passwd с домашним каталогом /dev/null и оболочкой /sbin/nologin может быть использован для команд sudo, но на самом деле под ним нельзя войти в систему;
из моего /etc/passwd
tcpdump:x:104:441:added by portage for tcpdump:/dev/null:/sbin/nologin
Я смутно помню, что это также заставит его исчезнуть с экрана входа в XDM, но я больше не пользуюсь XDM, так что это всего лишь предположение :-)
решение4
Я не уверен насчет OSX, но на FreeBSD можно использовать:
pw add user mymuser -g mygroup -s /nonexistent -h -
значение -
переданного -h
опции указывает pw
установить поле пароля в master.passwd в *
, тем самым создавая учетную запись без входа. Установка оболочки не является строго обязательной, но позволяет избежать проверки оболочки из /etc/pw.conf.