メンバーサーバーとしてActiveDirectoryにバインドされたDebianSambaファイルサーバーがあります。
このサーバー上で、ユーザー名に一致する各従業員のスタッフフォルダーを作成します。
従業員が辞めると、Active Directoryユーザーアカウントは非アクティブ化され、非アクティブ化されたユーザーOUに移動されます。
退職した従業員のスタッフフォルダをプログラムで削除したいのですが、アクティブな従業員と非アクティブな従業員を区別するツールが見つかりません。 「wbinfo--verbose-i」および「id」コマンドを試しました。
従業員がアクティブか非アクティブか、またはユーザーアカウントが配置されているOUの代替状態を判別するために使用できるLinuxコマンドを知っている人はいますか。
Openldap ldapsearch
ユーティリティに固執する必要があります。これにより、必要な情報が得られます。起動に使用するスイッチと追加のパラメーターは、ドメイン名、LDAPルート内のOU座標など、AD構成によって異なります。
提案1
LDAPを使用すると、userAccountControlプロパティをチェックして、ADアカウントのステータスを確認できます。
このフラグは10進数で表されるバイナリデータであるため、正しい10進数値が計算およびチェックされていることを確認する必要があります
例えば:
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にあるかどうかを確認することかもしれません。検索ルートを非アクティブOUに設定し、そこに存在するアカウントのリストを取得すると、それらを既存のユーザーホームドライブのリストと比較できます。
pdbedit
の「アカウントフラグ」出力を解析してこの情報を取得できます。
この例では、その方法のメカニズムを示します。
root@dc:~# { pdbedit -v -u Disabled.UserName | \
grep '^Account Flags.*D' >/dev/null; } && echo disabled
disabled