Como eu determino se um usuário do Apple Open Directory está desabilitado via LDAP?

4

Eu tenho um usuário do Open Directory que tem a caixa "Conta de acesso" desmarcada no Workgroup Manager para que eles não possam fazer o login. Existe uma maneira de determinar isso usando uma consulta LDAP?

Também seria bom poder verificar a configuração do Shell de Login para /bin/false via LDAP, pois alguns administradores usam isso para desabilitar logins.

    
por Harley 10.11.2010 / 00:43

2 respostas

5

Se uma conta está desabilitada não é armazenada no banco de dados LDAP, então você não pode obtê-la com qualquer consulta LDAP; está no banco de dados do servidor de senhas, portanto, é necessário consultar o servidor de senhas. Para fazer isso, primeiro você precisa obter o ID do slot da senha da conta, que estará em um dos atributos authAuthority no LDAP, algo assim:

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

Neste exemplo, "0x4ae508585b4ac9840000000500000005" é o ID do slot da senha do usuário. Depois disso, você pode se conectar ao servidor de senha e verificar as políticas de senha do usuário:

$ 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.

Observe a política "isDisabled = 1" nessa lista, indicando que esse usuário está desativado no momento.

    
por 10.11.2010 / 21:14
1

Para encontrar o usuário do valor do shell de login:

Filtro de pesquisa de (loginShell=/bin/false) (embora você possa precisar de aspas em torno dele, pois possui barras.

Vincule-se a um navegador LDAP como ApacheDS ou LBE e observe um usuário que pode e um que não pode efetuar login e procure atributos óbvios.

Enquanto alguém pode apenas saber a resposta, ensina-lhe a pescar, em vez de lhe entregar um peixe. Ou então só fede como um peixe podre. Sua milhagem pode variar.

    
por 10.11.2010 / 03:04