Como desabilitar uma conta LDAP?

6

O LDAP usa o esquema posixAccount e os atributos relacionados e gostaria de saber se existe uma maneira padronizada de desabilitar uma conta. A reativação da conta deve, obviamente, reativar a senha anterior.

Eu sei que passwd --lock adiciona um ponto de exclamação na frente da senha criptografada em /etc/passwd . A mesma convenção funciona com o campo userPasswd de uma entrada LDAP?

Atualização: Conheço o PAM / NSS abaixo, minha pergunta foi especificamente direcionada ao servidor LDAP. Quando a conta estiver bloqueada, desejo que o usuário não consiga abrir uma conexão autenticada com o próprio servidor LDAP (com suas próprias credenciais). Isso porque vários serviços usam uma conexão autenticada bem-sucedida com o LDAP como mecanismo de autenticação simples sem usar o PAM para essa tarefa (isso é comum em interfaces da Web).

    
por Raphaël Hertzog 01.09.2010 / 10:17

3 respostas

3

Heh.

Unix / Linux e uma maneira padronizada de fazer algo. Garoto engraçado você é. Eu sei, eu sei, em muitos casos existem maneiras padrão de fazer as coisas, mas o LDAP certamente não é um deles. O LDAP rima com o lema do Perl: "Há mais de uma maneira de fazer isso".

A mesma convenção que no / etc / passwd (ou, em / etc / shadow para ser preciso) funcionará. Debaixo de seu sistema está usando o PAM (para autenticação) e bibliotecas de NSS (para pesquisa de nome) por resolver a informação de conta e para aplicações de terra de usuário é transparente se o resultado chegou de pam_ldap, pam_mysql, nss_files, nss_bdb, nss_mysql, nss_ldap ou alguma outra fonte contanto que esteja no formulário padrão.

Então, quando se trata de LDAP ...

  • Alguns gostam de escrever seus próprios scripts utilizando ldapmodify
  • Outros usam clientes gráficos, como gq ou Luma
  • Outros usam Perl e Net :: LDAP ou outras linguagens de script e suas ligações LDAP
  • Outros usam PHPMyAdmin e interfaces da Web semelhantes

Qual é o seu caminho preferido? Se estiver usando o comando passwd, você só precisa conectar seu sistema com pam_ldap e nss_ldap. Então todos os utilitários familiares continuarão a funcionar como de costume.

    
por 01.09.2010 / 10:40
3

Não há uma maneira padrão, mas existem várias maneiras de fazer isso, cada uma sendo uma opção de configuração no ldap.conf (ou pam-ldap.conf dependendo da sua distribuição e suas configurações de tempo de compilação do pam_ldap):

pam_filter: use um filtro personalizado junto com um atributo no LDAP que denota uma conta inativa.

pam_check_host_attr: pam_ldap verificará se há um atributo "host" correspondente no objeto do usuário. Se você implementá-lo desta maneira, você poderia simplesmente remover / adicionar o nome do host a este atributo se o usuário puder efetuar o login. Isso não tocaria sua senha.

pam_check_service_attr: Ainda não usei isso, mas deve funcionar de maneira semelhante a pam_check_host_attr.

    
por 01.09.2010 / 11:29
3

Você pode estar interessado em tentar slapo-ppolicy (sobreposição de política de senha), conforme sugerido aqui . Isso é de fato uma espécie de padrão , embora possa ser um pouco exagerado para o que você está tentando fazer. Especificamente, o atributo interessante é

pwdAccountLockedTime

   This attribute contains the time that the user's  account  was  locked.
   If  the  account has been locked, the password may no longer be used to
   authenticate the user to the directory.  If pwdAccountLockedTime is set
   to  000001010000Z,  the  user's account has been permanently locked and
   may only be unlocked by an administrator.
    
por 19.10.2016 / 16:27