我创办了一家办公室,我需要集中登录和主目录才能工作。由于所有工作站都将运行 Arch,并且不同 LDAP 版本存在问题,我最终得出结论,LDAP 服务器也需要 Arch。
我在服务器和工作站上完全全新安装了 Arch。两者都安装了 Arch 的“base”和“base-devel”软件包组、NTP、OpenSSH 和 OpenLDAP,服务器还安装了 nss-pam-ldapd。现在基本就是这样了。
- 我已经关注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 start slapd 失败,sudo slapd -u ldap -g ldap 也失败,但 sudo slapd 可以工作。
- 运行 sudo slapd 后,我终止了 slapd 并 chown -R ldap:ldap /var/lib/openldap 但 systemctl start slapd 仍然失败。
- chown -R ldap:ldap /etc/openldap 之后,我终于可以使用 systemctl start slapd... 我认为它是在使用 ldap 用户启动时 ldap 无法读取的架构文件夹。
- 已关注https://wiki.archlinux.org/index.php/LDAP_Authentication
- 我没有启动或启用 nscd
- 我现在可以使用工作站上的 LDAP 用户正常登录,并且可以使用我的 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
最后,我的问题是:
- 首先,哪里是阅读这类资料的最佳地点?
- 其次,我该如何自我调试?Arch 使用 systemd,基于 systemd 的系统的 syslog 在哪里?
- mlocate 包与 updatedb 和 allocate 有什么关系?我需要使用它吗?archwiki 中没有提到它,但在很多其他地方提到过。
- 实际问题是:为什么我的用户不能用 passwd 更改密码
答案1
在客户端上你必须取消注释/etc/nslcd.conf像这样 :
rootpwmoddn cn=admin,dc=example,dc=com
并将 cn 和 dc 更改为根域名在slapd配置文件在服务器上