Como posso desabilitar uma conta de usuário da CLI com o Mac OS X Server?

5

Existe alguma solução possível para desativar um usuário da CLI? sobre SSH? Tem que haver um comando dscl para isso. Ou existe um atributo dsAttrTypeStandard que eu possa definir adequadamente?

Algum apontador?

    
por Dennis Williamson 01.09.2009 / 18:03

3 respostas

6

Isso funciona em 10.5 e 10.6 em contas LDAP / OD:

pwpolicy -a diradmin -u ajohnson -setpolicy "isDisabled=1"

Ou para contas locais:

sudo dscl . -create /Users/ajohnson UserShell /usr/bin/false

Substitua ajohnson pelo nome de usuário curto do usuário que você deseja desativar.

Para reativar, basta definir "isDisabled = 0" em vez de 1. Ou, no caso de contas locais, em qualquer shell em /etc/shells

pwpolicy exemplo é da página 62 da Documentação de gerenciamento de usuários (Snow Leopard) ou Página 106 do Manual da Command Line Administration Leopard .

    
por 01.09.2009 / 18:50
6

Para todas as contas do OS X

pwpolicy não funciona para contas locais no cliente do OS X. MAS Você pode usar o comando dscl para editar diretamente essas configurações de autenticação. É garantido que este método funcione para contas OS X do nível do usuário (Guest, admin e outras contas regulares que você veria listadas na janela de login). Com essa abordagem, não importa se a conta é gerenciada com a conta do OS-X Server / LDAP. Esse método também funciona para todas as contas do sistema OSX (que, de outra forma, você desativaria seus shells de login).

Veja como:

# Read the AuthenticationAuthority key
dscl . -read /Users/username AuthenticationAuthority

AuthenticationAuthority: ;Kerberosv5;; \
username@LKDC:SHA1.41BE28E3B64EB62A42D0673968B9591DE18210F5; \
LKDC:SHA1.07264456235E49D45C4B99FC9549FC366CE32343; ; \
ShadowHash;HASHLIST:<SALTED-SHA1>

Desativar

Se ainda não estiver desativado, anexe DisabledUser ao valor dessa chave. Com um ponto e vírgula para o separador de campo. Excesso / vazio ; ; campos são ignorados.

dscl . -append /Users/username AuthenticationAuthority ";DisabledUser;"

Verificar

Para verificar o status de uma conta como ativado / desativado:

dscl . -read /Users/username AuthenticationAuthority | grep DisabledUser

Para contas do sistema OSX: essas contas não têm uma chave AuthenticationAuthority para começar. Portanto, para verificar o status ativado / desativado, é determinado se o atributo UserShell tem um shell de login válido. Portanto, verifique o shell quando AuthenticationAuthority não existe.

Ativar

Para reativar a conta do usuário, basta remover DisabledUser sub-string da entrada AuthenticationAuthority. Nós usamos, em seguida, use o dscl . -create cmd e write-back a coisa toda.

dscl . -read /Users/username AuthenticationAuthority | \
sed 's/AuthenticationAuthority: //;s/DisabledUser//g;s/[; ]*$//' | \
xargs dscl . -create /Users/username AuthenticationAuthority

Obtenha as credenciais do AuthenticationAuthority para todos os usuários:

dscl . -list /Users AuthenticationAuthority

Contas do sistema: lembre-se de que uma conta do sistema também deve ter um shell de login válido.

    
por 08.12.2009 / 13:52
0

Temos alguns clientes OSX autenticando a partir de um servidor LDAP do Linux. O que funcionou para mim foi definir o atributo loginShell de um usuário para / usr / bin / false. Isso parece impedir tanto o SSH quanto os logins gráficos.

    
por 03.06.2010 / 18:01