桑巴会员服务器 – 用户被禁用?

我有一台Debian Samba文件服务器作为成员服务器绑定到Active Directory。

我们为每个在该服务器上与其用户名匹配的员工创build一个员工文件夹

当员工退出时,他们的Active Directory用户帐户被取消激活并移动到停用的用户OU。

我想以编程方式删除已离职员工的员工文件夹,但找不到可区分在职员工和停用员工的工具。 我曾尝试过:“wbinfo –verbose -i”和“id”命令。

有没有人知道一个Linux命令,我可以用它来确定一个员工是否处于活动状态或停用状态,或者替代状态是一个用户账户所在的OU。

您应该坚持使用openldap ldapsearch实用程序,该实用程序会提供您所需的信息。 您启动的开关以及其他参数取决于您的ADconfiguration,如域名,LDAP根目录中的OU坐标等。

build议1

使用LDAP,您可以检查userAccountControl属性以validationAD帐户状态。

该标志是以小数表示的二进制数据,因此您需要确保计算并检查正确的十进制值

例如:

 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

build议2

或者,在您的情况下,更简单的LDAP方法可能是查看帐户path是否处于“不活动”OU中。 如果您将search根设置为Inactive OU,然后获取其中的帐户列表,则可以将这些帐户与您现有的用户主驱动器列表进行比较。

您可以parsingpdbedit的“帐户标志”输出以检索此信息。

这个例子将告诉你如何做到这一点的机制:

 root@dc:~# { pdbedit -v -u Disabled.UserName | \ grep '^Account Flags.*D' >/dev/null; } && echo disabled disabled