web-dev-qa-db-ja.com

Sambaメンバーサーバー-ユーザーは無効になっていますか?

メンバーサーバーとしてActiveDirectoryにバインドされたDebianSambaファイルサーバーがあります。

このサーバー上で、ユーザー名に一致する各従業員のスタッフフォルダーを作成します。

従業員が辞めると、Active Directoryユーザーアカウントは非アクティブ化され、非アクティブ化されたユーザーOUに移動されます。

退職した従業員のスタッフフォルダをプログラムで削除したいのですが、アクティブな従業員と非アクティブな従業員を区別するツールが見つかりません。 「wbinfo--verbose-i」および「id」コマンドを試しました。

従業員がアクティブか非アクティブか、またはユーザーアカウントが配置されているOUの代替状態を判別するために使用できるLinuxコマンドを知っている人はいますか。

2
user122992

Openldap ldapsearchユーティリティに固執する必要があります。これにより、必要な情報が得られます。起動に使用するスイッチと追加のパラメーターは、ドメイン名、LDAPルート内のOU座標など、AD構成によって異なります。

0
drookie

提案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に設定し、そこに存在するアカウントのリストを取得すると、それらを既存のユーザーホームドライブのリストと比較できます。

1
Trix

pdbeditの「アカウントフラグ」出力を解析してこの情報を取得できます。

この例では、その方法のメカニズムを示します。

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