OpenLDAP em usuários do ArchLinux não pode alterar o passwd

1

Eu comecei um escritório e EU PRECISO de login centralizado e diretórios home para trabalhar. Como todas as estações de trabalho vão executar o Arch e problemas com diferentes versões do LDAP, finalmente concluí que o servidor LDAP também precisava do Arch.

Eu fiz uma instalação completamente limpa do Arch no servidor e em uma estação de trabalho. Ambos possuem os grupos de pacotes "base" e "base-devel" da Arch, NTP, OpenSSH & OpenLDAP instalado, o servidor também tem o nss-pam-ldapd. Isso é muito bonito agora.

  1. Eu segui o link , mas tive que fazer o seguinte de forma diferente (e não configurei o SSL ou TLS ainda):
    • Antes de copiar o DB_CONFIG.example, executei o updatedb e usei o locate DB_CONFIG
    • Eu tive que executar o slaptest com a opção -u para suprimir os avisos do banco de dados
    • Depois de executar slaptest, fiz chown -R ldap: ldap em /etc/openldap/slap.d
    • systemctl start slapd falha, o mesmo acontece com o sudo slapd -u ldap -g ldap, mas o sudo slapd funcionava.
    • Depois de executar o sudo slapd eu matei o slapd e o chown -R ldap: ldap / var / lib / openldap mas o systemctl start slapd ainda falhou.
    • depois do chown -R ldap: ldap / etc / openldap eu poderia finalmente usar o systemctl start slapd ... eu assumo que era a pasta do esquema que não podia ser lida pelo ldap quando iniciada com o usuário ldap.
  2. Seguidos link
    • eu não iniciei ou habilitei o nscd
  3. Agora posso fazer login com usuários LDAP na estação de trabalho, e posso atualizar o diretório usando meu rootdn.

Problema: os usuários não podem alterar a senha usando o passwd. LPAD retorna:

password change failed: Insufficient access

/etc/slapd.conf (no servidor):

include     /etc/openldap/schema/core.schema
include     /etc/openldap/schema/cosine.schema
include     /etc/openldap/schema/inetorgperson.schema
include     /etc/openldap/schema/nis.schema
pidfile     /run/openldap/slapd.pid
argsfile    /run/openldap/slapd.args
access to attrs=userPassword
    by self write
    by anonymous auth
    by * none
access to *
    by self write
    by * read
database    bdb
suffix      "dc=testing,dc=com"
rootdn      "cn=Manager,dc=testing,dc=com"
rootpw      {SSHA}ntsD5qrvHJtMflarQPhJzapiEEnqH2/L
directory   /var/lib/openldap/openldap-data
index   objectClass eq
index   uid             pres,eq
index   mail            pres,sub,eq
index   cn              pres,sub,eq
index   sn              pres,sub,eq
index   dc              eq

/etc/openldap/ldap.conf (no cliente):

BASE   dc=testing,dc=com
URI    ldap://192.168.1.50

/etc/nslcd.conf (no cliente):

uid nslcd
gid nslcd
uri ldap://192.168.1.50/
base dc=testing,dc=com

/etc/pam.d/system-auth (no cliente):

auth      sufficient  pam_ldap.so
auth      required  pam_unix.so     try_first_pass nullok
auth      optional  pam_permit.so
auth      required  pam_env.so
account   sufficient  pam_ldap.so
account   required  pam_unix.so
account   optional  pam_permit.so
account   required  pam_time.so
password  sufficient  pam_ldap.so
password  required  pam_unix.so     try_first_pass nullok sha512 shadow
password  optional  pam_permit.so
session   required  pam_limits.so
session   required  pam_unix.so
session   optional  pam_ldap.so
session   optional  pam_permit.so

/etc/pam.d/passwd (no cliente):

password    sufficient  pam_ldap.so
password    required    pam_unix.so sha512 shadow nullok

Então, finalmente, minhas perguntas:

  1. Primeiramente, onde é o melhor lugar para ler sobre esse tipo de coisa?
  2. Em segundo lugar, como depuro a mim mesmo? Arch usa systemd, onde está o syslog para sistemas baseados em systemd?
  3. O que é o pacote mlocate com updatedb e locate? Eu preciso usá-lo? Não é mencionado no archwiki, mas mencionado em muitos outros lugares.
  4. E a pergunta real: por que meus usuários não podem alterar senhas com passwd
por iOfWhy 10.01.2014 / 14:07

0 respostas