У меня есть файловый сервер Debian Samba, привязанный к Active Directory в качестве рядового сервера.
Мы создаем папку персонала для каждого сотрудника, соответствующего его имени пользователя на этом сервере.
Когда сотрудники увольняются, их учетная запись пользователя Active Directory деактивируется и перемещается в деактивированное пользовательское OU.
Я хотел бы программно удалить папки сотрудников для сотрудников, которые ушли, но не могу найти инструмент, который будет различать активных и деактивированных сотрудников. Я пробовал: команды "wbinfo --verbose -i" и "id".
Кто-нибудь знает команду Linux, которую я могу использовать, чтобы определить, активен ли сотрудник или деактивирован, или альтернативное состояние OU, в котором находится учетная запись пользователя.
Вы можете проанализировать вывод "Account Flags" pdbedit
чтобы получить эту информацию.
Этот пример покажет вам механизм, как это сделать:
root@dc:~# { pdbedit -v -u Disabled.UserName | \
grep '^Account Flags.*D' >/dev/null; } && echo disabled
disabled
Предложение 1
Используя LDAP, вы можете проверить свойство userAccountControl, чтобы проверить статус учетной записи AD.
Этот флаг представляет собой двоичные данные, выраженные в виде десятичных знаков, поэтому вам необходимо убедиться, что правильное десятичное значение вычислено и проверено.
Например:
UF_NORMAL_ACCOUNT = 512
UF_ACCOUNT_DISABLE = 2 +
---
514
Следовательно, отключенная учетная запись пользователя будет иметь userAccountControl = 514
.
Все учетные записи пользователей являются «обычными» учетными записями (512) - необычные учетные записи - это такие вещи, как учетные записи для доверительных отношений домена (2048) и т. Д.
Есть ряд других флагов, связанных с этим свойством, но некоторые из них недействительны, несмотря на внешнюю видимость. Однако 512 = активен и 514 = отключен надежен для стандартной учетной записи.
Полезный список этих флагов составлен на SelfADSI.org:http://www.selfadsi.org/ads-attributes/user-userAccountControl.htm
Предложение 2
В качестве альтернативы, в вашей ситуации, более простой метод LDAP может заключаться в том, чтобы увидеть, находится ли путь учетной записи в «неактивном» OU. Если вы установите корень поиска в неактивное подразделение, а затем возьмете список имеющихся там учетных записей, вы сможете сравнить их со списком существующих домашних дисков пользователей, которые у вас будут.
Вы должны придерживаться openldap ldapsearch
утилита, которая предоставит вам нужную информацию. Переключатели, с которыми вы его запускаете, и дополнительные параметры зависят от вашей конфигурации AD, например, имя домена, координаты подразделения внутри корня LDAP и т. Д.