Score:0

พยายามให้ sudoers ทำงานบน openldap/centos7

ธง in

ฉันกำลังติดตามบทช่วยสอนนี้ที่นี่:

https://kifarunix.com/how-to-configure-sudo-via-openldap-server/

มีเหตุผลมากมาย แต่ก็ยังใหม่สำหรับ openldap ดังนั้นบางส่วนก็เป็นความลับเช่นกัน ฉันมี openldap ที่ทำงานกับผู้ใช้ที่ตรวจสอบสิทธิ์ในเครื่องอื่นแม้ว่าจะทำงานกับ phpldapadmin ถึงเวลาแล้วที่จะให้ sudoers ทำงานให้กับผู้ใช้บางคน ฉันวิ่ง sudoers2ldif คำสั่งและรับไฟล์ที่คล้ายกับที่แสดงไว้ในบทช่วยสอน และแก้ไขตามนั้น เมื่อถึงเวลาวิ่ง ldapadd -Y ภายนอก -H ldapi:/// -f sudoers_modified.ldif มันล้มเหลวด้วยข้อผิดพลาด:

เริ่มการรับรองความถูกต้อง SASL/EXTERNAL แล้ว
ชื่อผู้ใช้ SASL: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
เพิ่มรายการใหม่ "cn=defaults,ou=SUDOers,dc=apo,dc=local"
ldap_add: ไวยากรณ์ไม่ถูกต้อง (21)
    ข้อมูลเพิ่มเติม: objectClass: ค่า #1 ไม่ถูกต้องต่อไวยากรณ์

21 คือหมายเลขบรรทัดของไฟล์ .ldif หรือไม่ หรือรหัสข้อผิดพลาดอื่น ๆ ... ก็ไม่รู้ว่าอะไรไม่ถูกต้องในคำสั่ง objectClass ... ที่โพสต์คือไฟล์ ldif ด้านล่าง

dn: cn=defaults,ou=SUDOers,dc=bbb,dc=local
objectClass: ด้านบน
objectClass: sudoRole
cn: ค่าเริ่มต้น
คำอธิบาย: เริ่มต้น sudoOption ไปที่นี่
sudoOption: !visiblepw
sudoOption: always_set_home
sudoOption: match_group_by_gid
sudoOption: always_query_group_plugin
sudoOption: env_reset
sudoOption: env_keep = "สีที่แสดงชื่อโฮสต์ HISTSIZE KDEDIR LS_COLORS"
sudoOption: env_keep += "MAIL PS1 PS2 QTDIR ชื่อผู้ใช้ LANG LC_ADDRESS LC_CTYPE"
sudoOption: env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
sudoOption: env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
sudoOption: env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
sudoOption: secure_path = /sbin:/bin:/usr/sbin:/usr/bin

dn: cn=sudo,OU=SUDOers,dc=bbb,dc=local
objectClass: ด้านบน
objectClass: sudoRole
cn: sudo
sudoUser: บ๊อบบี้
sudoHost: ทั้งหมด
sudoRunAsUser: ทั้งหมด
sudoCommand: ทั้งหมด

อาจจำเป็นต้องเพิ่ม sudoRole อย่างใด ldif อื่น ๆ ที่ฉันเพิ่มสำเร็จสำหรับสิ่งนี้คือ:

dn: ou=SUDOers,dc=bbb,dc=local
objectCLass: ด้านบน
objectClass: หน่วยขององค์กร
คุณ: SUDOers
รายละเอียด: ตู้คอนเทนเนอร์ BBB SUDOers

ฉันพบบทช่วยสอนอื่นที่นี่:

https://forums.centos.org/viewtopic.php?t=73807

ด้วยข้อมูลที่คล้ายกันซึ่งแตกต่างกันเล็กน้อย ฉันไม่ได้ใช้ไฟล์นี้เพราะไฟล์ ldif ไฟล์หนึ่งที่โพสต์มีเนื้อหามากมายที่ระบุว่าไฟล์นี้ "สร้างอัตโนมัติ" และฉันก็ไม่รู้ว่าไฟล์นั้นมาจากไหนหรืออย่างไร

หลังจากคำตอบเดียว ฉันเชื่อว่าไฟล์แสดงในลิงก์ด้านบนที่มีข้อมูล:

vi /testfolder/sudoers.ldif
#------------------------
# ไฟล์ที่สร้างอัตโนมัติ - ห้ามแก้ไข!! ใช้ ldapmodify
#CRC32b181185c
dn: cn=sudoers,cn=สคีมา,cn=config
objectClass: olcSchemaConfig
cn: ซูโดเออร์
olcAttributeTypes: {0}( 1.3.6.1.4.1.15953.9.1.1 NAME 'sudoUser' DESC 'ผู้ใช้
) ที่อาจเรียกใช้ sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5Substrin
gsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: {1}( 1.3.6.1.4.1.15953.9.1.2 NAME 'sudoHost' DESC 'โฮสต์
) ที่อาจเรียกใช้ sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5Substring
sMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: {2}( 1.3.6.1.4.1.15953.9.1.3 NAME 'sudoCommand' DESC 'Com
คำสั่งที่จะดำเนินการโดย sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4
.1.1466.115.121.1.26 )
olcAttributeTypes: {3}( 1.3.6.1.4.1.15953.9.1.4 NAME 'sudoRunAs' DESC 'ผู้ใช้ (
s) เลียนแบบโดย sudo (เลิกใช้แล้ว)' EQUALITY caseExactIA5Match SYNTAX 1.3
.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: {4}( 1.3.6.1.4.1.15953.9.1.5 NAME 'sudoOption' DESC 'Opti
ons ตามด้วย sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466
.115.121.1.26 )
olcAttributeTypes: {5}( 1.3.6.1.4.1.15953.9.1.6 NAME 'sudoRunAsUser' DESC 'U
ser(s) เลียนแบบโดย sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1
1466.115.121.1.26 )
olcAttributeTypes: {6}( 1.3.6.1.4.1.15953.9.1.7 NAME 'sudoRunAsGroup' DESC '
กลุ่มที่เลียนแบบโดย sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4
1.1466.115.121.1.26 )
olcAttributeTypes: {7}( 1.3.6.1.4.1.15953.9.1.8 NAME 'sudoNotBefore' DESC 'S
tart ของช่วงเวลาที่รายการถูกต้อง ' EQUALITY generalizedTim
eMatch ORDERING GeneralizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.12
1.1.24 )
olcAttributeTypes: {8}( 1.3.6.1.4.1.15953.9.1.9 NAME 'sudoNotAfter' DESC 'En
d ของช่วงเวลาที่รายการถูกต้อง' EQUALITY generalizedTimeMa
tch ORDERING GeneralizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1
.24 )
olcAttributeTypes: {9}( 1.3.6.1.4.1.15953.9.1.10 NAME 'sudoOrder' DESC 'an i
nteger เพื่อสั่งซื้อรายการ sudoRole' EQUALITY integerMatch ORDERING intege
rOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
olcObjectClasses: {0}( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' DESC 'Sudoer
รายการ ' SUP โครงสร้างด้านบนต้อง cn อาจ ( sudoUser $ sudoHost $ sudoCommand
$ sudoRunAs $ sudoRunAsUser $ sudoRunAsGroup $ sudoOption $ sudoOrder $ ซู
doNotBefore $ คำอธิบาย sudoNotAfter $ ) )

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

Richard Salts avatar
cn flag
คุณกำลังใช้การกำหนดค่าไดนามิกสำหรับ openldap แทนที่จะเป็นlapd.conf และไฟล์ *.schema ที่เกี่ยวข้อง การกำหนดค่าเซิร์ฟเวอร์เข้าถึงได้ผ่าน ldap และคุณสามารถดูได้ด้วย `ldapsearch -Y EXTERNAL -d "cn=config" ldapi:///` ดูเหมือนว่าบทช่วยสอนที่คุณติดตามนั้นขึ้นอยู่กับข้อเท็จจริงที่ว่า sudo schema นั้นมีอยู่แล้ว รวมไว้ในเซิร์ฟเวอร์ ldap
Score:1
ธง no

21 คือหมายเลขบรรทัดของไฟล์ .ldif หรือไม่ หรือรหัสข้อผิดพลาดอื่น ๆ

นั่นคือรหัสส่งคืนสำหรับไวยากรณ์ที่ไม่ถูกต้อง

LDAP_INVALID_SYNTAX - 21 (0x15)
ค่าแอตทริบิวต์ที่ระบุในคำขอไคลเอ็นต์ LDAP ไม่ได้ระบุไวยากรณ์ที่ถูกต้อง 
ตัวอย่างเช่น หากประเภทแอตทริบิวต์ในสกีมามีไวยากรณ์จำนวนเต็ม ต้องระบุค่าจำนวนเต็มในคำขอเพิ่มหรือแก้ไข

คุณสามารถทำสิ่งต่อไปนี้เพื่อแก้ไขปัญหานี้เพิ่มเติมได้หรือไม่

  • ตรวจสอบว่ามีไฟล์สคีมา sudoers อยู่บนโฮสต์หรือไม่ หากไม่มีให้คัดลอกจาก ที่นี่
    # ls -l /etc/openldap/schema/sudo.schema
    
  • ตรวจสอบว่า sudo.schema (หรือไฟล์ที่เทียบเท่า) ถูกเพิ่มไปยังไฟล์คอนฟิกูเรชันเซิร์ฟเวอร์ openldap ที่เกี่ยวข้องหรือไม่
    # grep sudo.schema /etc/openldap/slapd.conf
    รวม /etc/openldap/schema/sudo.schema
    
  • ตรวจสอบว่ามี sudoers OU อยู่หรือไม่!
    # ldapsearch -H ldap://localhost -x -LLL -s one -b "OU=SUDOers,dc=bbb,dc=local"
    
    ถ้าไม่ใช่ ให้เพิ่มโดยใช้ ldapadd (1)
  • ตรวจสอบว่ามีข้อผิดพลาดทางไวยากรณ์ในไฟล์ ldif โดยใช้
    # /usr/bin/cvtsudoers /tmp/sample.ldif -i ldif -f sudoers
    

คุณควรอ่านเอกสาร sudo อย่างเป็นทางการ ลิงค์ ที่มีคำอธิบายสำหรับบางสิ่งข้างต้น

in flag
ฉันสังเกตเห็นว่าฉันไม่มี Slapd.conf เลย แต่ฉันคิดว่าเป็นเพราะสิ่งนั้นเลิกใช้แล้วและฉันกำลังใช้เวอร์ชันใหม่
no flag
เนื่องจากคุณใช้ centos คุณสามารถตรวจสอบเวอร์ชันของ openldap ที่คุณกำลังใช้งานอยู่โดยใช้ `rpm -qi openldap-servers` นี้ได้หรือไม่

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา