web-dev-qa-db-ja.com

Apple Open DirectoryユーザーがLDAP経由で無効になっているかどうかを確認するにはどうすればよいですか?

ワークグループマネージャで[アカウントにアクセス]チェックボックスがオフになっているOpenDirectoryユーザーがいるため、ログインできません。 LDAPクエリを使用してこれを判断する方法はありますか?

一部の管理者はこれを使用してログインを無効にするため、LDAPを介して/bin/falseのログインシェル設定を確認できると便利です。

4
Harley

アカウントが無効になっているかどうかはLDAPデータベースに保存されないため、LDAPクエリでアカウントを取得することはできません。パスワードサーバーデータベースにあるため、パスワードサーバーにクエリを実行する必要があります。これを行うには、最初にアカウントのパスワードスロットIDを取得する必要があります。これはLDAPのauthAuthority属性の1つにあり、次のようになります。

authAuthority: ;ApplePasswordServer;0x4ae508585b4ac9840000000500000005,1024 35 
 1484429831226030758363098280788558407709702186716704057921377682138163682495133
 1971257473356121601282837516549920614867084718242948054970731529476886852497051
 1771493871066923475105955010041662310891335912128945258881795910315183596873989
 2049755102190782235854169470422244680045551515607049216054651273928793669 
 [email protected]:10.0.0.5

この例では、「0x4ae508585b4ac9840000000500000005」がユーザーのパスワードスロットIDです。それができたら、パスワードサーバーに接続して、ユーザーのパスワードポリシーを確認できます。

$ telnet 10.0.0.5 3659
Trying 10.0.0.5...
Connected to myserver.example.com.
Escape character is '^]'.
+OK ApplePasswordServer 10.6.0.0 password server at 10.1.0.1 ready.
getpolicy 0x4ae508585b4ac9840000000500000005
+OK isDisabled=1 isAdminUser=0 newPasswordRequired=0 usingHistory=0
canModifyPasswordforSelf=1 usingExpirationDate=0 usingHardExpirationDate=0
requiresAlpha=0 requiresNumeric=0 expirationDateGMT=44451553867008
hardExpireDateGMT=44451553900288 maxMinutesUntilChangePassword=0
maxMinutesUntilDisabled=0 maxMinutesOfNonUse=0 maxFailedLoginAttempts=0
minChars=0 maxChars=0 passwordCannotBeName=0 requiresMixedCase=0
requiresSymbol=0 notGuessablePattern=0 isSessionKeyAgent=0 isComputerAccount=0
adminClass=0 adminNoChangePasswords=0 adminNoSetPolicies=0 adminNoCreate=0
adminNoDelete=0 adminNoClearState=0 adminNoPromoteAdmins=0
quit
+OK password server signing off.
Connection closed by foreign Host.

そのリストの「isDisabled = 1」ポリシーに注意してください。これは、このユーザーが現在無効になっていることを示しています。

5
Gordon Davisson

ログインシェル値ユーザーを見つけるには:

(loginShell=/bin/false)の検索フィルター(ただし、スラッシュが含まれているため、引用符で囲む必要がある場合があります。

ApacheDS または [〜#〜] lbe [〜#〜] のようなLDAPブラウザーでバインドし、ログインできるユーザーとできないユーザーを調べて、明らかなものを探します。属性。

誰かが答えを知っているかもしれませんが、この方法はあなたに魚を渡す代わりに魚を教えることを教えます。そうでなければ、腐った魚のように悪臭を放ちます。あなたのマイレージは異なる場合があります。

1
geoffc