Trình xử lý lỗi ldap_add (80) <olcModuleLoad> đã thoát với 1


8

Tôi đang cố gắng làm theo hướng dẫn này để thiết lập máy chủ LDAD cơ bản (OpenLDAP) để xác thực khóa, nhưng tôi bị kẹt ở bước tôi thêm cấu hình back-end.

Tôi đã tạo tệp backend.ldif của mình như được chỉ định và tôi đang cố gắng thêm nó bằng:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.ldif

Nhưng tôi nhận được:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=module,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
    additional info: <olcModuleLoad> handler exited with 1

LDIF đầy đủ là:

#Load dynamic backend modules
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_hdb

# Database settings
dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcSuffix: dc=mydomain,dc=us
olcDbDirectory: /var/lib/ldap
olcRootDN: cn=admin,dc=mydomain,dc=us
olcRootPW: dmx512
olcDbConfig: set_cachesize 0 2097152 0
olcDbConfig: set_lk_max_objects 1500
olcDbConfig: set_lk_max_locks 1500
olcDbConfig: set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcAccess: to attrs=userPassword by dn="cn=admin,dc=mydomain,dc=us" write by anonymous auth by self write by * none
olcAccess: to attrs=shadowLastChange by self write by * read
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=mydomain,dc=us" write by * read

Bất kỳ đề xuất về cách khắc phục sự cố? Tôi không biết gì về máy chủ LDAP đây là lần đầu tiên của tôi.

CẬP NHẬT:

Tôi đã bắt đầu lại với bản cài đặt hoàn toàn mới của Máy chủ 11.04.

Tôi đã làm như sau:

hostname ldap.mycompany.com
nano /etc/hosts (set to ldap.mycompany.com)
nano /etc/hostname (set to ldap.mycompany.com)
sudo apt-get install slapd ldap-utils

Tôi cố gắng tải lược đồ đầu tiên:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif

Tôi có:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
    additional info: olcAttributeTypes: Duplicate attributeType: "0.9.2342.19200300.100.1.2"

Tôi đã thử lệnh được đề xuất dưới đây:

root@ldap:~# cat /etc/ldap/slapd.d/cn\=config/cn\=module\{0\}.ldif
dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
structuralObjectClass: olcModuleList
entryUUID: 3bedbe64-e4b2-1030-832a-17900c7b3644
creatorsName: cn=config
createTimestamp: 20120206020131Z
entryCSN: 20120206020131.785958Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20120206020131Z

Nhưng lần này nó không phàn nàn về một mô-đun, nó phàn nàn về "Loại thuộc tính trùng lặp".

Vì vậy, tôi cần một lệnh có nội dung "hiển thị các loại thuộc tính được tải" để xem "cosine" đã có trong danh sách chưa?

OK, tôi sẽ giả sử rằng:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif

là không cần thiết vì tất cả các sản phẩm cùng một lỗi.

Vì vậy, tôi chuyển sang thêm ~ / backend.ldif. Tôi đã loại bỏ các dòng chế độ tải từ trên xuống, vì mô-đun dường như đã được tải.

Bây giờ khi tôi cố gắng thêm:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.ldif

Tôi có:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcDatabase=hdb,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
    additional info: <olcSuffix> namingContext "dc=mycompany,dc=us" already served by a preceding hdb database

Điều này vô nghĩa vì đây là cơ sở dữ liệu duy nhất trên máy tính và đây là mục đầu tiên tôi thêm vào.

Câu trả lời:


6

Thông báo lỗi cho biết back_hdbmô-đun đã được đưa vào cấu hình. Bạn có thể xác minh điều này bằng lệnh

cat /etc/ldap/slapd.d/cn\=config/cn\=module\{0\}.ldif

Nếu điều này bao gồm các dòng tương tự như sau, thì nó đã được bao gồm:

olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb 

Nếu đây là trường hợp, chỉ cần loại bỏ sáu dòng đầu tiên từ của bạn backend.ldifvà thử lại.

Nếu bạn muốn bắt đầu từ đầu, bạn có thể sử dụng lệnh

apt-get purge slapd ldap-utils

để thoát khỏi cài đặt ldap hoàn chỉnh bao gồm tất cả các tệp dữ liệu.

Sau đó, bạn sẽ cần cài đặt lại OpenLDAP bằng lệnh tương ứng

apt-get install slapd ldap-utils

BTW, tôi chỉ làm theo hướng dẫn này (trong khi sử dụng tất cả các giá trị mặc định từ tập lệnh của họ) và điều này hoạt động tốt trên máy ảo Lucid mới được tạo.


Biên tập

OK, trong bài viết khác của bạn, bạn đã nói về 10.04. Trong thực tế, cấu hình tự động trong 11.04 cho slapdtốt hơn nhiều so với 10.04. Những gì nó làm cho bạn là mọi thứ trong hướng dẫn liên quan đến các tệp lược đồ và backend.ldif và thậm chí một phần từ frontend: Bạn có thể xóa các dòng sau khỏi fronted.ldif và cố gắng tiếp tục từ đó:

# Create top-level object in domain
dn: dc=tuxnetworks,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: Tuxnetworks
dc: Tuxnetworks
description: LDAP Server 

# Admin user.
dn: cn=admin,dc=tuxnetworks,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: mypassword 

Một số gợi ý khác: Cấu hình phụ trợ của OpenLDAP ( cn=config) không gì khác hơn là một tập hợp các tệp LDIF trong cấu trúc hệ thống tệp tương đương với cấu trúc LDAP. Bạn có thể duyệt nó trong /etc/ldap/slapd.d. 10.04 có mức tối thiểu ở đó để slapdlàm việc, trong khi 11.04 chuẩn bị mọi thứ để bạn có thể bắt đầu ngay.


Tôi sẽ cố gắng làm lại toàn bộ. Tôi đang làm điều này trên máy ảo 11.04. Có lẽ có một cái gì đó không tương thích trong phiên bản mới? Hoặc phiên bản OpenLDAP đi kèm với 11.04 đã được tải mô-đun đó trong khi 10.04 không có? Vì vậy, nếu tôi cài đặt ldap và vặn nó, chạy "apt-get purge slapd ldap-utils" sẽ giống như khi tôi bắt đầu cài đặt sạch? Nó không để lại bất kỳ "rác" nào?
Nick

OK, tôi đã thử lại với một bản cài đặt mới và nhận được "olcAttributionTypes: trùng lặp thuộc tínhType" khi thử tải lược đồ "cosine". Xin vui lòng xem ở trên cho thông báo đầy đủ.
Nick

Xem chỉnh sửa của tôi, điều này đang nhận được để nhận xét.
Sven

Tôi đã làm việc với LDAP bằng cách sử dụng 10.04 và làm theo hướng dẫn một lần nữa. Tôi đang đánh dấu là đã giải quyết vì nó trả lời câu hỏi tiêu đề. Cảm ơn!
Nick

1

thêm .la vào cuối back_hdb

LDIF nên đọc

#Load dynamic backend modules
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_hdb.la

# Database settings
dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcSuffix: dc=mydomain,dc=us
olcDbDirectory: /var/lib/ldap
olcRootDN: cn=admin,dc=mydomain,dc=us
olcRootPW: dmx512
olcDbConfig: set_cachesize 0 2097152 0
olcDbConfig: set_lk_max_objects 1500
olcDbConfig: set_lk_max_locks 1500
olcDbConfig: set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcAccess: to attrs=userPassword by dn="cn=admin,dc=mydomain,dc=us" write by anonymous auth by self write by * none
olcAccess: to attrs=shadowLastChange by self write by * read
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=mydomain,dc=us" write by * read

để được giải thích: http://ubuntuforums.org/archive/index.php/t-1594138.html

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.