ldap_modify: การเข้าถึงไม่เพียงพอ (50)


9

ฉันใช้เซิร์ฟเวอร์ OpenLDAP 2.4 ที่ใช้บริการ SSL เพื่อการสื่อสาร มันใช้งานได้กับการค้นหา

ฉันกำลังพยายามเพิ่มการจำลองแบบโหมดมิรเรอร์

ดังนั้นนี่คือคำสั่งที่ฉันกำลังดำเนินการ:

ldapmodify -D "cn=myuser,dc=mydomain,dc=com" -H ldaps://myloadbalancer -W -f /etc/ldap/ldif/server_id.ldif

ที่นี่คือ server_id.ldif ของฉัน:

dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1 myserver1
olcServerID: 2 myserver2

และนี่คือ cn \ = config.ldif ของฉันในแผนผังไฟล์ slapd.d:

dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/slapd/slapd.args
olcPidFile: /var/run/slapd/slapd.pid
olcToolThreads: 1
structuralObjectClass: olcGlobal
entryUUID: ff9689de-c61d-1031-880b-c3eb45d66183
creatorsName: cn=config
createTimestamp: 20121118224947Z
olcLogLevel: stats
olcTLSCertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSCertificateKeyFile: /etc/ldap/certs/ldapskey.pem
olcTLSCACertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSVerifyClient: never
entryCSN: 20121119022009.770692Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20121119022009Z

แต่น่าเสียดายที่ฉันได้รับสิ่งนี้:

Enter LDAP Password: 
modifying entry "cn=config"
ldap_modify: Insufficient access (50)

หากฉันพยายามระบุฐานข้อมูล config ฉันจะได้รับสิ่งนี้:

ldapmodify -H 'ldaps://myloadbalancer/cn=config' -D "cn=myuser,cn=config" -W -f ./server_id.ldif 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)}

ไม่มีใครรู้ว่าฉันสามารถเพิ่ม serverID ลงในฐานข้อมูลการกำหนดค่าเพื่อให้ฉันสามารถตั้งค่าโหมดมิเรอร์ได้หรือไม่

คำตอบ:


10

มันเป็นสิ่งที่พูดบนกระป๋อง DN ของคุณcn=myuser,dc=mydomain,dc=comมีสิทธิ์ไม่เพียงพอในการแก้ไขcn=configทรี และเมื่อคุณพยายาม "เพื่อระบุฐานข้อมูลการกำหนดค่า" คุณกำลังใช้ DN ที่แตกต่างกันอย่างสิ้นเชิงcn=myuser,cn=configซึ่งดูเหมือนจะไม่มีอยู่หรือคุณใช้รหัสผ่านผิด

ในการปรับเปลี่ยนเช่นนี้คุณต้องทำงานกับบัญชีที่มีสิทธิ์เพียงพอที่จะแก้ไขฐานข้อมูลต่างๆ ว่า "admin" บัญชีคือบัญชีหนึ่งที่มักจะมีสิทธิ์ทั้งหมดจะมีการระบุไว้ในแอตทริบิวต์และรหัสผ่านของมันถูกพบในolcRootDN olcRootPWสำหรับcn=configฐานข้อมูลคุณลักษณะเหล่านั้นจะพบในolcDatabase={0}config,cn=configและสำหรับฐานข้อมูล "ปกติ" มักจะประเภท HDB olcDatabase={1}hdb,cn=configใน

คุณสอนตามเอกสารหรือเอกสารอะไรบ้าง ดูเหมือนคุณจะไม่เข้าใจสิ่งที่คุณกำลังทำอยู่ที่นี่อย่างสมบูรณ์


อืมฉันใช้บัญชี olcRootDN อยู่แล้ว -D "cn = myuser, dc = mydomain, dc = com" คือการแทนที่ "cn = Manager, dc = example, dc = com" ... ฉันแทนที่ Manager ด้วย myuser เพื่อความปลอดภัย ฉันคาดว่ามันจะทำงาน ฉันคิดว่าฉันต้องระบุ serverID ในระดับที่สูงกว่าฐานข้อมูล ... ที่การกำหนดค่าพื้นฐานของ slapd ซึ่งฉันคาดว่าจะอยู่ใน cn = config.ldif ไม่ใช่ olcDatabase \ = \ {1 \} hdb.ldif โดยที่หนึ่งค้นหา olcRootDN
Lynn Owens

ถ้าคุณได้รับ "การเข้าถึงไม่เพียงพอ" แล้วคุณจะไม่ได้ใช้ผู้ดูแลระบบที่กำหนดค่าในและolcRootDN olcRootPWผู้ใช้นั้นสามารถเข้าถึงทุกสิ่งได้ตามคำจำกัดความ อีกครั้งโปรดทราบว่าฐานข้อมูลที่แตกต่างกันมีผู้ใช้ผู้ดูแลระบบที่แตกต่างกัน สำหรับต้นไม้ใช้หนึ่งที่ระบุไว้ภายใต้cn=config olcDatabase={0}config,cn=configและไม่olcServerIDแอตทริบิวต์นั้นเป็นของcn=configDN มันเป็นที่ที่ฉันมี
daff

ขอบคุณ Daff นั่นแหล่ะ ฉันไม่รู้ข้อเท็จจริงที่ว่าฐานข้อมูล config เป็นฐานข้อมูล {0} มีผู้ใช้ที่เป็นผู้ดูแลระบบอยู่ในนั้นอย่างแน่นอน ฉันให้รหัสผ่านและการแก้ไขของฉันดำเนินการโดยไม่มีปัญหา :)
Lynn Owens

ฉันสนใจที่จะทราบว่าคุณต้องการแนะนำบทเรียนหรือเอกสารใดให้คุ้นเคยกับ ldap อย่างรวดเร็ว เพราะเป็นที่ชัดเจนสำหรับฉันว่าฉันไม่มีความคิดอย่างแน่นอนว่าฉันกำลังทำอะไรอยู่
The Lazy Coder

1
@TheLazyCoder เอกสารอย่างเป็นทางการครอบคลุม แต่ไม่สามารถเข้าถึงได้โดยมือใหม่ เอกสาร Ubuntu OpenLDAPมีอากาศที่ดีขึ้นในช่วงเวลาและอาจจะดีพอสำหรับการเริ่มต้น นอกจากนั้นฉันได้เรียนรู้จากหนังสือ "Mastering OpenLDAP" ของ Matt Butcher ซึ่งจัดพิมพ์โดย Packt คุณอาจต้องการเริ่มต้นที่นั่นแม้ว่ามันจะเก่าไปสักหน่อย
daff

7

เนื่องจากฉันมีปัญหาที่ค่อนข้างคล้ายกันฉันจึงลองใช้วิธีแก้ปัญหาที่น่าสนใจ แต่ก็ไม่มีประโยชน์ ตรงกันข้ามกับ Lynn Owens ฉันไม่สามารถเพิ่มรหัสผ่านให้กับผู้ดูแลระบบolcDatabase={0}config,cn=configได้ ในที่สุดฉันก็สามารถปรับเปลี่ยนการcn=configใช้คำสั่งของฉันเช่น:

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

ใช้งานได้โดยเฉพาะ "-Y EXTERNAL -H ldapi: ///" เนื่องจาก cn = admin, dc = ... ที่สร้างขึ้นในตอนแรกไม่มีสิทธิ์เข้าถึงสำหรับการปรับเปลี่ยนระดับล่างเหล่านี้
naisanza

1
หากวิธีนี้ใช้ไม่ได้ในการลองครั้งแรกโปรดจำไว้ว่าsudoเป็นเพื่อนของคุณ
ratskin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.