Назад | Перейти на главную страницу

Как я могу отключить учетную запись пользователя из интерфейса командной строки с Mac OS X Server?

Есть ли возможное решение для отключения пользователя из интерфейса командной строки, например. через SSH? Для этого должна быть команда dscl. Или есть атрибут dsAttrTypeStandard, который я могу установить соответствующим образом?

Есть указатели?

Для всех учетных записей OS X

pwpolicy не работает для локальных учетных записей на клиенте OS X. НО Ты можешь используйте команду dscl для непосредственного редактирования этих параметров аутентификации. Этот метод гарантированно работает для учетных записей OS X на уровне пользователя (гостевые, административные и другие обычные учетные записи, которые вы увидите в списке в окне входа в систему). При таком подходе не имеет значения, управляется ли учетная запись с помощью учетной записи OS-X Server / LDAP. Этот метод также работает для всех системных учетных записей OSX (в противном случае вы бы отключили их оболочки входа).

Вот как:

# Read the AuthenticationAuthority key
dscl . -read /Users/username AuthenticationAuthority

AuthenticationAuthority: ;Kerberosv5;; \
username@LKDC:SHA1.41BE28E3B64EB62A42D0673968B9591DE18210F5; \
LKDC:SHA1.07264456235E49D45C4B99FC9549FC366CE32343; ; \
ShadowHash;HASHLIST:<SALTED-SHA1>

Отключить

Если еще не отключено, добавьте DisabledUser к значению этого ключа. С точкой с запятой для разделителя полей. Превышение / пусто ; ; поля игнорируются.

dscl . -append /Users/username AuthenticationAuthority ";DisabledUser;"

Проверьте

Чтобы проверить статус учетной записи включен / отключен:

dscl . -read /Users/username AuthenticationAuthority | grep DisabledUser

Для учетных записей системы OSX: эти учетные записи не имеют AuthenticationAuthority ключ для начала. Поэтому проверка их включенного / выключенного статуса определяется тем, UserShell атрибут имеет допустимую оболочку входа в систему. Так что проверьте оболочку, когда AuthenticationAuthority не существует.

включить

Чтобы снова включить учетную запись пользователя, мы просто удаляем DisabledUser подстрока из записи AuthenticationAuthority. Мы используем затем используем dscl . -create cmd и напишите обратно все это.

dscl . -read /Users/username AuthenticationAuthority | \
sed 's/AuthenticationAuthority: //;s/DisabledUser//g;s/[; ]*$//' | \
xargs dscl . -create /Users/username AuthenticationAuthority

Получите учетные данные AuthenticationAuthority для всех пользователей:

dscl . -list /Users AuthenticationAuthority

Системные учетные записи: просто помните, что системная учетная запись также должна иметь действительную оболочку входа.

Это работает в 10.5 и 10.6 для учетных записей LDAP / OD:

pwpolicy -a diradmin -u ajohnson -setpolicy "isDisabled=1"

Или для локальных учетных записей:

sudo dscl . -create /Users/ajohnson UserShell /usr/bin/false

Замените ajohnson коротким именем пользователя, которого вы хотите отключить.

Для повторного включения просто установите isDisabled = 0 вместо 1. Или в случае локальных учетных записей для любой оболочки в /etc/shells

pwpolicy пример взят со страницы 62 Документация по управлению пользователями (Snow Leopard) или страница 106 Леопард администрирования командной строки руководство.

У нас есть несколько клиентов OSX, которые проходят аутентификацию с сервера Linux LDAP. Что сработало для меня, так это установка атрибута loginShell пользователя на / usr / bin / false. Похоже, это предотвращает как SSH, так и графический вход.