ubuntu下OpenLDAP新增自定義屬性

akiya發表於2019-11-21

前言

在Ubuntu14.04.1下安裝LDAP後新增自定義屬性後,重啟服務並無生效。還需要重新編譯schema檔案

如果我們直接在/etc/ldap/schema/core.schema/etc/ldap/schema/inetorgperson.schema中新增了自定義屬性,或者新增了自定義的*.schema,並且service slapd restart重啟服務後未生效。

那麼需要進入如下操作:

建立編譯配置檔案

在/tmp下建立任意臨時資料夾

在控制檯執行如下命令,建立myLdap.conf並引入.schema檔案,如果有自定義的*.schema也一併寫入

cat > myLdap.conf << EOF
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/nis.schema
EOF
複製程式碼

編譯schema

接著執行如下命令對schema進行編譯

# slapcat -f ./myLdap.conf -F ./ -n0
複製程式碼

如無報錯會在當前資料夾(/tmp/myLdap)下生成如下檔案結構

# tree
.
├── cn=config
│   ├── cn=schema
│   │   ├── cn={0}core.ldif
│   │   ├── cn={1}cosine.ldif
│   │   ├── cn={2}inetorgperson.ldif
│   │   └── cn={3}nis.ldif
│   ├── cn=schema.ldif
│   ├── olcDatabase={0}config.ldif
│   └── olcDatabase={-1}frontend.ldif
├── cn=config.ldif
└── myLdap.conf

2 directories, 9 files
複製程式碼

使用新編譯ldif

現在我們需要複製./cn=config/cn=schema下的*.ldif檔案到/etc/ldap/slapd.d/cn=config/cn=schema/路徑下

# rm -rf /etc/ldap/slapd.d/cn=config/cn=schema/*
# cp ./cn=config/cn=schema/* /etc/ldap/slapd.d/cn=config/cn=schema/
複製程式碼

修改檔案許可權

# chown openldap.openldap /etc/ldap/slapd.d/cn=config/cn=schema/*
複製程式碼

檢視檔案許可權,確認修改成功,如果檔案所有者非openldap重啟服務會報錯

# ll /etc/ldap/slapd.d/cn=config/cn=schema/
total 48
drwxr-x--- 2 openldap openldap  4096 Nov 21 22:35 ./
drwxr-x--- 3 openldap openldap  4096 Nov 21 22:10 ../
-rw------- 1 openldap openldap 15499 Nov 21 22:35 cn={0}core.ldif
-rw------- 1 openldap openldap 11361 Nov 21 22:35 cn={1}cosine.ldif
-rw------- 1 openldap openldap  2855 Nov 21 22:35 cn={2}inetorgperson.ldif
-rw------- 1 openldap openldap  6491 Nov 21 22:35 cn={3}nis.ldif
複製程式碼

最後重啟OpenLDAP

# service slapd restart
 * Stopping OpenLDAP slapd             [ OK ]
 * Starting OpenLDAP slapd             [ OK ]
複製程式碼

相關文章