我需要实现 ldap + kerberos 集成。我用于 ldap 端的 docker 镜像是:https://github.com/osixia/docker-openldap
目前我正在关注:https://help.ubuntu.com/lts/serverguide/kerberos-ldap.html
然而我被卡住了,似乎缺少文件:/usr/share/doc/krb5-kdc-ldap/kerberos.schema.gz
。
跑步:
apt-get update && apt-get upgrade -yy && apt-get install -yy krb5-kdc-ldap && ls -l /usr/share/doc/krb5-kdc-ldap/kerberos.schema.gz
容器内部:osixia/openldap:1.1.2
没有这样的文件。知道为什么会这样吗?
但是如果我运行:
apt-get update && apt-get install -yy apt-file && apt-file update && apt-file list krb5-kdc-ldap
我懂了:
krb5-kdc-ldap: /etc/insserv/overrides/krb5-kdc
krb5-kdc-ldap: /lib/systemd/system/krb5-admin-server.service.d/slapd-before-kdc.conf
krb5-kdc-ldap: /lib/systemd/system/krb5-kdc.service.d/slapd-before-kdc.conf
krb5-kdc-ldap: /usr/lib/x86_64-linux-gnu/krb5/libkdb_ldap.so.1
krb5-kdc-ldap: /usr/lib/x86_64-linux-gnu/krb5/libkdb_ldap.so.1.0
krb5-kdc-ldap: /usr/lib/x86_64-linux-gnu/krb5/plugins/kdb/kldap.so
krb5-kdc-ldap: /usr/sbin/kdb5_ldap_util
krb5-kdc-ldap: /usr/share/doc/krb5-kdc-ldap/NEWS.Debian.gz
krb5-kdc-ldap: /usr/share/doc/krb5-kdc-ldap/changelog.Debian.gz
krb5-kdc-ldap: /usr/share/doc/krb5-kdc-ldap/copyright
krb5-kdc-ldap: /usr/share/doc/krb5-kdc-ldap/kerberos.ldif.gz
krb5-kdc-ldap: /usr/share/doc/krb5-kdc-ldap/kerberos.schema.gz
krb5-kdc-ldap: /usr/share/man/man8/kdb5_ldap_util.8.gz
此外,如果我在 docker 容器内运行命令debian:jessie
:
apt-get update && apt-get upgrade -yy && apt-get install -yy krb5-kdc-ldap && ls -l /usr/share/doc/krb5-kdc-ldap/kerberos.schema.gz
我可以看到存在的文件。
为什么安装包后,特定容器中缺少其中一个文件?我该如何获取kerberos.schema.gz
容器中的文件:osixia/openldap:1.1.2
?
答案1
为了完整起见,此文档错误已经有解决方案, 我引用:
该图像具有防止安装文档和语言环境的配置,以使其尽可能轻量。
要安装文档,请删除该文件
/etc/dpkg/dpkg.cfg.d/01_nodoc
rm -f /etc/dpkg/dpkg.cfg.d/01_nodoc
并安装区域设置删除
/etc/dpkg/dpkg.cfg.d/01_nolocales
rm -f /etc/dpkg/dpkg.cfg.d/01_nolocales
安装完成后
krb5-kdc-ldap
文件/usr/share/doc/krb5-kdc-ldap/kerberos.schema.gz
就应该在那里。
答案2
文件名中的 .gz 部分可能表示在创建时使用了某种形式的压缩,例如 gzip。如果是这样,您可以尝试将文件的未压缩版本(名称相同但没有 .gz 部分)添加到同一目录中。
另外,您可以通读安装过程,看看它是否下载该文件、使用它,然后删除它。