ArchLinux上的OpenLDAP用户不能更改passwd

我开办了办公室,我需要集中login和主目录工作。 由于所有的工作站都要运行Arch和不同LDAP版本的问题,我最终得出的结论是LDAP服务器也需要Arch。

我已经在服务器和工作站上完全安装了Arch。 都有Arch的“base”和“base-devel”软件包组,安装了NTP,OpenSSH和OpenLDAP,服务器也有nss-pamldapd。 现在已经很多了。

  1. 我遵循https://wiki.archlinux.org/index.php/OpenLDAP,但必须以不同的方式执行以下操作(并且尚未设置SSL或TLS):
    • 在复制DB_CONFIG.example之前,我运行了updatedb,并使用了locate DB_CONFIG
    • 我必须用-u选项运行slaptest来禁止数据库警告
    • 在运行slaptest之后,我在/etc/openldap/slap.d上做了chown -R ldap:ldap
    • systemctl启动slapd失败,所以sudo slapd -u ldap -g ldap,但sudo slapd工作。
    • 运行sudo slapd后,我杀了slapd和chown -R ldap:ldap / var / lib / openldap但是systemctl启动slapd仍然失败。
    • 后chown -r ldap:ldap / etc / openldap我终于可以使用systemctl启动slapd了……我认为这是当ldap用户启动时不能被ldap读取的模式文件夹。
  2. 遵循https://wiki.archlinux.org/index.php/LDAP_Authentication
    • 我没有启动或启用nscd
  3. 我现在可以在工作站上用LDAP用户login,并且可以使用我的rootdn更新目录。

问题:用户不能使用passwd更改密码。 LPAD返回:

password change failed: Insufficient access 

/etc/slapd.conf(在服务器上):

 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(在客户端上):

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

/etc/nslcd.conf(在客户端上):

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

/etc/pam.d/system-auth(在客户端):

 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(在客户端):

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

最后,我的问题是:

  1. 首先,哪里是阅读这种东西最好的地方?
  2. 其次,我该如何debugging自己? Arch使用systemd,systemd系统的系统日志在哪里?
  3. 什么是更新和定位mlocate包? 我需要使用它吗? 在archwiki中没有提到,但在许多其他地方提到过。
  4. 而实际的问题是:为什么我的用户不能用passwd来更改密码