รายชื่อสมาชิกกลุ่มโดยใช้ ldapsearch


12

ไดเร็กทอรี LDAP ขององค์กรของเราตั้งอยู่ในการตั้งค่า Open Directory ของ Snow Leopard Server ฉันพยายามใช้ldapsearchเครื่องมือเพื่อส่งออกไฟล์. lifif เพื่อนำเข้าสู่เซิร์ฟเวอร์ LDAP ภายนอกอื่นเพื่อตรวจสอบสิทธิ์ภายนอก โดยทั่วไปพยายามใช้ข้อมูลประจำตัวเดียวกันทั้งภายในและภายนอก

ฉันได้ldapsearchทำงานและมอบเนื้อหาและคุณสมบัติของทุกสิ่งใน "ผู้ใช้" OU และแม้แต่กรองลงไปยังคุณลักษณะที่ฉันต้องการเท่านั้น:

ldapsearch -xLLL -H ldap://server.domain.net / 
 -b "cn=users,dc=server,dc=domain,dc=net" objectClass / 
 uid uidNumber cn userPassword > directorycontents.ldif

นั่นให้รายชื่อผู้ใช้และคุณสมบัติที่ฉันสามารถนำเข้าสู่เซิร์ฟเวอร์ OpenLDAP ระยะไกลของฉัน

dn: uid=username1,cn=users,dc=server,dc=domain,dc=net
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: organizationalPerson
uidNumber: 1000
uid: username1
userPassword:: (hashedpassword)
cn: username1

อย่างไรก็ตามเมื่อฉันลองใช้คำค้นหาเดียวกันกับ "กลุ่ม" OD แทนที่จะเป็น "คอนเทนเนอร์" ผลลัพธ์จะเป็นดังนี้:

dn: cn=groupname,cn=groups,dc=server,dc=domain,dc=net
objectClass: posixGroup
objectClass: apple-group
objectClass: extensibleObject
objectClass: top
gidNumber: 1032
cn: groupname
memberUid: username1
memberUid: username2
memberUid: username3

สิ่งที่ฉันต้องการจริงๆคือรายชื่อผู้ใช้จากตัวอย่างด้านบนที่กรองตามการเป็นสมาชิกกลุ่มของพวกเขา แต่ดูเหมือนว่ามีการตั้งค่าความเป็นสมาชิกจากฝั่งกลุ่มมากกว่าด้านบัญชีผู้ใช้ ต้องมีวิธีในการกรองสิ่งนี้ลงและส่งออกเฉพาะสิ่งที่ฉันต้องการใช่ไหม

คำตอบ:


4

ฉันทำงานกับ LDAP แต่ไม่ใช่เซิร์ฟเวอร์เฉพาะของแบรนด์นั้น

สิ่งแรกที่ฉันจะลองคือการค้นหาผู้ใช้ดึงคุณลักษณะทั้งหมดของพวกเขาแทนที่จะ จำกัด วิธีการที่ตัวอย่างของคุณทำ

ldapsearch -xLLL -H ldap://server.domain.net \
    -b "cn=users,dc=server,dc=domain,dc=net" uid=username1 \* +

บ่อยครั้งที่มีแอตทริบิวต์ "memberOf" ในผู้ใช้ที่แสดงชื่อกลุ่มหรือ DN กลุ่มสำหรับกลุ่มที่ผู้ใช้เข้าสู่ระบบซิงค์กับข้อมูลในกลุ่ม หากนั่นคือนั่นเป็นวิธีที่ง่ายที่สุดในการทำสิ่งที่คุณต้องการ

*จะคว้าคุณลักษณะของผู้ใช้ทั้งหมด (พฤติกรรมเริ่มต้น) และ+จะคว้าแอตทริบิวต์การดำเนินงานทั้งหมด (คุณลักษณะพิเศษ)


นี่เป็นเธรดเก่า แต่ควรจะกล่าวว่าใน OpenLDAP (พื้นฐานของ Open Directory) memberOfเป็นแอ็ตทริบิวต์การดำเนินการและต้องได้รับการร้องขออย่างชัดเจน สิ่งที่ldapsearchแนะนำเช่นนี้จะไม่กลับมาmemberOfอีกแม้ว่าจะมีอยู่ก็ตาม มันควรจะกล่าวด้วยว่าการmemberOfซ้อนทับมักจะไม่ได้เปิดใช้งานตามค่าเริ่มต้นแม้ว่าฉันจะไม่ทราบวิธีการจัดการนี้ใน OS X และ Open Directory
daff

@daff ผมเชื่อว่า + ควรจะได้รับทั้งหมดแอตทริบิวต์การดำเนินงาน ...
Freiheit

อ่าแน่นอน ldapsearchผลงานที่อัปเดตของคุณตามที่โฆษณาไว้
daff

0

คุณมีเป้าหมายที่จะเป็นตัวแทนกลุ่มโดยมีวัตถุผู้ใช้ที่อยู่ในภาชนะที่แตกต่างกันหรือไม่? ชอบ:

dn: uid=username1,cn=users,cn=accounting,dc=server,dc=domain,dc=net
...
dn: uid=username2,cn=users,cn=engineering,dc=server,dc=domain,dc=net
...

ถ้าเป็นเช่นนั้นฉันคาดว่าคุณจะต้องเขียนสคริปต์เพื่อนวด LDIF ลองใช้โมดูลPython-LDAP ที่ยอดเยี่ยม

ฉันจะถามว่าทำไมคุณถึงอยากทำเช่นนั้น มันทำให้เกิดความยุ่งเหยิงที่จะมีผู้ใช้ที่อยู่ในหลายกลุ่มและขัดกับอนุสัญญาของ Open Directory คุณไม่สามารถคัดลอกวัตถุผู้ใช้และกลุ่มทั้งหมดไปยังเซิร์ฟเวอร์ OpenLDAP ของคุณและทำการสืบค้นตามความเป็นสมาชิกกลุ่มแทนที่จะเป็นคอนเทนเนอร์วัตถุที่ผู้ใช้มีอยู่หรือไม่


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