यह ldapadd कमांड "अमान्य सिंटैक्स" त्रुटि के साथ क्यों छोड़ता है?


14

मैं Openldap के लिए बहुत नया हूँ, लेकिन बहुत अच्छी तरह से linux / unix के माहौल में पारंगत हूं। मैं यहाँ गाइड का उपयोग करके अपने पहले परीक्षण के ओपनडैप वातावरण को सेटअप करने की कोशिश कर रहा हूँ । मैंने यहां अधिकांश एडमिन गाइड को भी पढ़ा है और मुझे स्वीकार करना होगा, इसमें बहुत कुछ है।

इसलिए ubuntu बुनियादी सेटअप गाइड का पालन करते हुए मैंने एक ldif फ़ाइल बनाई जो इस तरह दिखती है:

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Groups,dc=example,dc=com
objectClass: organizationalUnit
ou: Groups

dn: cn=engineers,ou=Groups,dc=example,dc=com
objectClass: posixGroup
cn: engineers
gidNumber: 5000

dn: uid=john,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: john
sn: Doe
givenName: John
cn: John Doe
displayName: John Doe
uidNumber: 10000
gidNumber: 5000
userPassword: johnldap
gecos: John Doe
loginShell: /bin/bash
homeDirectory: /home/john

जब भी मैंने इसका उपयोग करके जोड़ने की कोशिश की:

$ ldapadd -x -D cn=admin,dc=example,dc=com -W -f add_content.ldif

मुझे निम्नलिखित त्रुटि मिलती है:

adding new entry "cn=engineers,ou=Groups,dc=my-domain,dc=com"
ldap_add: Invalid syntax (21)
    additional info: objectClass: value #0 invalid per syntax

adding new entry "uid=john,ou=People,dc=my-domain,dc=com"
ldap_add: Invalid syntax (21)
    additional info: objectClass: value #0 invalid per syntax

इस त्रुटि के लिए Google में परिणाम किसी भी सहायक सुझाव को शुद्ध नहीं करते हैं। मैं यहां क्या गलत कर सकता हूं?


यदि आपके डोमेन में डैश नहीं है तो क्या होगा? यह इसका कारण हो सकता है ...
नाथन C

@NathanC कि अब बदलने की कोशिश करने जा रहा है ...
hax0r_n_code

@NathanC एक ही बात ... मेरा अनुमान है कि यह नहीं मिल सकता है posixGroup। मैं उपलब्ध objectClassतों के लिए क्वेरी कैसे कर सकता हूँ ?
hax0r_n_code

@ नथन सी भी मेरे पास यह /etc/ldap/slapd.d/निर्देशिका नहीं है । मैंने ओपनडैप को स्रोत से स्थापित किया है।
hax0r_n_code

मैं ओपनलैप के साथ उत्तर देने के लिए पर्याप्त रूप से परिचित नहीं हूं ... यहां कोई और व्यक्ति हो सकता है।
नाथन सी

जवाबों:


11

आपकी समस्या निस्संदेह है कि आपको nisस्कीमा को अपने LDAP सर्वर में लोड करने की आवश्यकता है । यह कैसे करना है यह इस बात पर निर्भर करता है कि क्या आपके द्वारा लीगेसी slapd.confकॉन्फ़िगरेशन फ़ाइल का उपयोग किया जा रहा है या निर्देशिका cn=configद्वारा होस्ट किए गए और समर्थित नए डायनेमिक कॉन्फ़िगरेशन हैं slapd.d

का उपयोग करते हुए slapd.conf

आपको includeअपनी slapd.confपंक्तियों के साथ एक पंक्ति जोड़कर स्कीमा परिभाषा की आवश्यकता होगी :

include /usr/local/etc/openldap/schema/nis.schema

यह मानता है कि nis.schemaफ़ाइल उस पथ पर स्थित है; यदि नहीं, तो उचित रूप से पथ को संशोधित करें।

slapdनए स्कीमा को सक्रिय करने के लिए आपको पुनरारंभ करना होगा ।

का उपयोग करते हुए slapd.d

(मैं इसे पूर्णता के लिए शामिल करता हूं, हालांकि यह सीधे आपके वर्तमान कॉन्फ़िगरेशन के लिए प्रासंगिक नहीं है)।

एक स्कीमा लोड करने के लिए slapdयदि आप गतिशील cn=configविन्यास का उपयोग कर रहे हैं , तो आप उपयोग करेंगे ldapadd। आपके ACL को कैसे कॉन्फ़िगर किया गया है, इसके आधार पर, कमांड इस तरह दिख सकती है:

ldapadd -Y EXTERNAL -H ldapi:// -f /usr/local/etc/openldap/schema/nis.ldif

यह मानता है कि आपके चलने slapdमें एसीएल की अनुमति "सहकर्मी क्रेडेंशियल्स" प्रमाणीकरण है root। अगर वह काम नहीं करता है, तो आपको एक उपयुक्त बाँध डीएन और पासवर्ड का उपयोग करके -Dऔर प्रदान करना होगा -W

इस मामले में कोई पुनरारंभ आवश्यक नहीं है।


धन्यवाद! यदि मैंने डाउनलोड किया है और नवीनतम संस्करण स्थापित किया है तो openldapमुझे उपयोग करने के लिए कॉन्फ़िगर क्यों नहीं किया जाएगा slapd.d?
hx0r_n_code

हो सकता है कि इंस्टॉलर विरासत कॉन्फ़िगरेशन फ़ाइल का उपयोग करने में चूक कर दे? किसी भी मामले में दस्तावेज़ से परिवर्तित करने के लिए निर्देश दिए गए हैं slapd.confकरने के लिए slapd.d
लार्क्स

यह उत्तर बहुत ही सहायक समय था। मुझे इसे काम करने के लिए कुछ आवश्यक स्कीमा जोड़ना पड़ा। जवाब के लिए धन्यवाद!
सेंथिल कुमार

1
आपको कैसे पता चला कि यह nis.schema गायब था और कुछ अन्य स्कीमा नहीं थी? आपने त्रुटि को कैसे पार किया?
माइक शुल्टज

1
त्रुटि cn = इंजीनियरों के लिए ऑब्जेक्टक्लास के बारे में शिकायत कर रही है, जो "पॉज़िक्सग्रुप" है। इससे यह पता लगाना अपेक्षाकृत आसान है कि किस स्कीमा में ऑब्जेक्टक्लास को परिभाषित किया गया है।
लार्क्स 18

1

मैंने हाल ही में Ubuntu OpenLDAP सर्वर ट्यूटोरियल का अनुसरण करते हुए इस समस्या का सामना किया । मेरी पंक्तियों से सभी अनुगामी व्हाट्सएप को हटाकर इसे हल किया।


1
इसके लिए बहुत बहुत धन्यवाद, मैं सिर्फ इस त्रुटि से जूझ रहा हूं!
TylerDurden

1

मैं इसे file.ldifहटाता हूं कि मैं ओपनडैप (उदाहरण के लिए data.ldif) चार्ज करना चाहता हूं: क्योंकि टेक्स्ट एडिटर viकभी-कभी त्रुटि या बग के द्वारा अदृश्य चरित्र डालते हैं और यह आपकी ldif फाइल को प्रभावित करता है। इसलिए इसे हटा दें और आप एक और एक बना लें और प्रत्येक स्टेटमेंट को एक-एक करके अपलोड करने की कोशिश करें और कमांड के साथ जांच करें ldapsearch -x -h nameofyourserver -b “dc=whateveris,dc=com”, अलविदा और मैं आपको इससे मदद की उम्मीद करता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.