একটি দেশ যুক্ত করার সময় "কোনও বৈশ্বিক উচ্চতর জ্ঞান" নেই


14

আমাকে অবশ্যই এটি organizationalunitনতুনভাবে ইনস্টল করা ওপেনএলডিএপিতে (উবুন্টু 12.04 এ) যুক্ত করতে হবে:

dn: ou=MYREGION, ou=MYAPP, ou=GROUPS, o=myorganization, c=fr
ou: MYREGION
objectClass: top
objectClass: organizationalunit

এটি একটি নতুন এলডিএপি হিসাবে, আমি মনে করি আমাকে অবশ্যই প্রথমে frদেশ যুক্ত করতে হবে এবং আমি এই ফাইলটি তৈরি করেছি:

dn: c=fr
c: fr
objectClass: top
objectClass: country

এখন আমি এই আদেশটি দিয়ে এটি আমদানির চেষ্টা করব (সেই সার্ভারের জন্য আমার কোনও ডোমেন নেই):

ldapadd -x -D cn=admin,dc=nodomain -W -f country_fr.ldif

তবে ওপেনলডিএপি এই আদেশটি প্রত্যাখ্যান করে:

adding new entry "c=fr"
ldap_add: Server is unwilling to perform (53)
    additional info: no global superior knowledge

কোন ইঙ্গিত?

উত্তর:


20

ত্রুটির no global superior knowledgeঅর্থ হল slapdআপনার নতুন এন্ট্রিটি কোথায় রাখবেন তা জানেন না। এর অর্থ সাধারণত যে আপনি কোনও উপযুক্ত ডাটাবেস সংজ্ঞায়িত করেননি। নতুন ব্যবস্থা (ব্যবহার বেশী সঙ্গে cn=configপরিবর্তে slapd.conf), আপনি সাধারণত প্রথমে একটি নতুন ডাটাবেসের যোগ করতে অথবা ব্যবহার করে একটি বিদ্যমান ডাটাবেস এন্ট্রি পরিবর্তন হবে ldapaddবা ldapmodify। উদাহরণস্বরূপ, আমার ফেডোরা 17 সিস্টেমে, ডিফল্ট ইনস্টলটি হোস্টিংয়ের জন্য এই জাতীয় ডেটাবেস সেট আপ করে dc=my-domain,dc=com:

dn: olcDatabase={2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
creatorsName: cn=config
olcSuffix: dc=my-domain,dc=com
olcRootDN: cn=Manager,dc=my-domain,dc=com

আপনার সংস্থাটি ( o=myorganization, c=fr) হোস্ট করার জন্য , আমাকে নিম্নলিখিত এলডিআইএফ ফাইলটি তৈরি করতে হবে:

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: o=myorganization, c=fr
-
replace: olcRootDN
olcRootDN: cn=Manager,o=myorganization,c=fr
-
replace: olcAccess
olcAccess: {0}to * 
  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" write 
  by dn.base="cn=Manager,o=myorganization,c=fr" write
  by * none

এবং আমি এরপরে এই পরিবর্তনগুলি লোড করব:

ldapmodify -Y EXTERNAL -H ldapi:/// -f mychanges.ldif

olcAccessকনফিগারেশনে ইতিমধ্যে উপস্থিত নিম্নলিখিত লাইনগুলির কারণে এটি কাজ করে:

dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * 
  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
  by * none

এই অনুদান root, যোগাযোগ slapdওভার ldapi:///থেকে সকেট, পাসওয়ার্ড-মুক্ত প্রবেশাধিকার cn=configগাছ।

আমি তখন আমার শীর্ষ-স্তরের এন্ট্রি লোড করব:

dn: o=myorganization, c=fr
objectclass: organization
o: myorganization

চালিয়ে:

ldapadd -Y EXTERNAL -H ldapi:/// -f myobject.ldif

এটি কাজ করে কারণ আমি এই ডাটাবেসে একটি অনুরূপ এসিএল যুক্ত করেছি। নোট করুন যে c=frএখানে থেকে শুরু করার দরকার নেই, কারণ ডাটাবেসটি হোল্ড করার জন্য সংজ্ঞায়িত করা হয়েছেo=myorganization,c=fr


ঠিক আছে, অনেক ধন্যবাদ। তবে আমি যদি আপনার উত্তরটি সঠিকভাবে বুঝতে পারি তবে এখানে আপনি এই ওপেনলডিপ এর ডেটাবেজের বর্তমান উপসর্গটি পরিবর্তন করেছেন। আমি যদি একটি নতুন যুক্ত করতে চাই? (আমি যাইহোক আপনার প্রস্তাবনাগুলি পরীক্ষা করব, আমি কেবল কৌতুহলী)
অ্যান্টনি ও।

1
ldapaddপরিবর্তে ব্যবহার করুন ldapmodify, এবং বিদ্যমান রেকর্ডটি একটি মডেল হিসাবে ব্যবহার করুন।
16:55 এ 13:55

যদি এই উত্তরটি আপনার সমস্যাকে প্রশ্রয় দেয় তবে প্রশ্নের উপরের বামে চেকবক্সটি ক্লিক করে এটি গ্রহণযোগ্য হিসাবে চিহ্নিত করা আপনার পক্ষে খুব দয়া হবে।
লারস্ক

প্রকৃতপক্ষে, এটি আমাকে অনেক সহায়তা করেছে, তবে এটি যে সঠিক আদেশগুলি আমি পেরিয়েছিলাম তা ছিল না, এজন্য আমি নিজের উত্তর তৈরি করেছি। আমি আপনার উত্তরটি সম্পাদন করার সাহস পেলাম না ldifs (বিশেষত: সম্পর্কে olcAccess) এবং কমান্ডগুলি আমি সত্যিই ব্যবহার করেছি ... তবে আপনি যদি আমার উত্তর থেকে অনুলিপি / পেস্ট দিয়ে সম্পাদনা করতে চান তবে আমি এটি গ্রহণযোগ্য এবং চিহ্নিত করতে পারি আমার অপসারণ করুন :)
অ্যান্থনি ও।

(আমি মনে করি এটি আমার উত্তরকে হ্রাস করার কোনও কারণ নয় ...)
অ্যান্থনি ও

1

লারস্ক জবাবকে ধন্যবাদ , আমি যা করেছি তা এখানে।

প্রথমে এখানে উবুন্টু 12.04 (ফাইল /etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif) এর সাথে ডিফল্ট কনফিগারেশনের একটি সূত্র রয়েছে :

dn: olcDatabase={1}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=nodomain
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymou
 s auth by dn="cn=admin,dc=nodomain" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by self write by dn="cn=admin,dc=nodomain" write by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=nodomain

সুতরাং আমি নিম্নলিখিতটি তৈরি করেছি change_suffix.ldif:

dn: olcDatabase={1}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: o=myorganization,c=fr
-
replace: olcRootDN
olcRootDN: cn=admin,o=myorganization,c=fr
-
replace: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,o=myorganization,c=fr" write by * none
olcAccess: {2}to * by self write by dn="cn=admin,o=myorganization,c=fr" write by * read

এবং এটি নিম্নলিখিত কমান্ড দিয়ে আমার ldap এ যুক্ত করেছেন:

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f change_suffix.ldif

এখন আমাকে নিম্নলিখিতটি দিয়ে সংস্থা নোড তৈরি করতে হয়েছিল myorganization.ldif:

dn: o=myorganization,c=fr
objectclass: organization
o: myorganization

এবং অবশেষে এটি নিম্নলিখিত কমান্ডের সাথে যুক্ত করুন (প্রথমটির কারণে এটি কার্যকর হয়নি Insufficient access (50)):

ldapadd -x -D cn=admin,o=myorganization,c=fr -W -f myorganization.ldif

এখন আমি সাংগঠনিক ইউনিট যুক্ত করতে পারি:

dn: ou=GROUPS, o=myorganization,c=fr
ou: GROUPS
objectClass: top
objectClass: organizationalunit

dn: ou=MYAPP, ou=GROUPS, o=myorganization,c=fr
ou: MYAPP
objectClass: top
objectClass: organizationalunit

dn: ou=MYREGION, ou=MYAPP, ou=GROUPS, o=myorganization,c=fr
ou: MYREGION
objectClass: top
objectClass: organizationalunit

এটি dn: olcDatabase={1}hdb,cn=configআমার জন্য কী ছিল, ধন্যবাদ
মাইগুয়েলফগ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.