จากบทความ ติดตั้ง OpenLDAP Server บน Fedora 9 และ เพิ่มบัญชีผู้ใช้งานเข้าไปใน OpenLDAP
ในบทความนี้จะแสดงวิธีการเพิ่ม แก้ไข ลบ รวมทั้งการเปลี่ยนรหัสผ่าน (Password) ของผู้ใช้งานที่ถูกเก็บข้อมูลไว้ใน OpenLDAP โดยจะสร้างเป็นไฟล์ ldif แล้วใช้คำสั่งของ ldap ในการแก้ไข
เพิ่มผู้ใช้งานเข้าไปใน OpenLDAP
ตัวอย่างไฟล์ ldif และการใช้คำสั่ง ldapadd เพิ่ม user01 เข้าไปใน OpenLDAP
[root@fc9-min ldif]# cat add-user01.ldif dn: uid=user01,ou=People,dc=test-ldap,dc=com uid: user01 cn: user01 objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword: {crypt}!! shadowLastChange: 14030 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 1001 gidNumber: 100 homeDirectory: /home/user01
[root@fc9-min ldif]# ldapadd -x -D uid=root,ou=People,dc=test-ldap,dc=com \ -W -f add-user01.ldif Enter LDAP Password: adding new entry "uid=user01,ou=People,dc=test-ldap,dc=com"
รหัสผ่าน (Enter LDAP Password) ที่ต้องใส่คือรหัส rootpw ที่ถูกเข้ารหัสแล้วเก็บไว้ในไฟล์ slapd.conf
หลังจากที่เพิ่มผู้ใช้งาน ต้องสร้างไดเร็คทอรีเพื่อเป็น HOME ของ user ด้วย ดังนี้
[root@fc9-min ~]# cd /home [root@fc9-min home]# mkdir user01 [root@fc9-min home]# cp -av /etc/skel/. user01/ `/etc/skel/./.bash_profile' -> `user01/./.bash_profile' `/etc/skel/./.bash_logout' -> `user01/./.bash_logout' `/etc/skel/./.bashrc' -> `user01/./.bashrc' [root@fc9-min home]# chown user01:users user01/ [root@fc9-min home]# chmod 700 user01
ตรวจสอบผู้ใช้งานจาก OpenLDAP
นอกจากการทดสอบด้วยการล็อกอินแล้ว สามารถใช้คำสั่ง id หรือ getent ในการตรวจสอบผู้ใช้งานจาก OpenLDAP ได้ดังนี้
[root@fc9-min ~]# id user01 uid=1001(user01) gid=100(users) groups=100(users) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@fc9-min ldif]# getent passwd user01 user01:x:1001:100:user01:/home/user01:/bin/bash
เปลี่ยนรหัสผ่าน
ใช้คำสั่ง ldappasswd ในการเปลี่ยนรหัสผู้ใช้งานที่อยู่ใน OpenLDAP โดยต้องระบุ CN ของผู้ใช้นั้นๆ เช่น ต้องการเปลี่ยนรหัสผ่านของ user01 ซึ่งมี CN: uid=user01,ou=People,dc=test-ldap,dc=com สามารถทำได้ดังนี้
[root@fc9-min ldif]# ldappasswd -x -S -W -D uid=root,ou=People,dc=test-ldap,dc=com \ uid=user01,ou=People,dc=test-ldap,dc=com
New password: <new-user-password> Re-enter new password: <new-user-password> Enter LDAP Password: <rootpw-password>
รหัสสองอันแรกที่ต้องใส่ (New password และ Re-enter new password) เป็นรหัสใหม่ที่ต้องการตั้งให้กับผู้ใช้ ส่วน Enter LDAP Password ต้องใส่รหัสผ่านของ rootpw ที่ระบุในไฟล์ slapd.conf
แก้ไขข้อมูล
ใช้คำสั่ง ldapmodify เพื่อแก้ไขข้อมูลที่อยู่ใน OpenLDAP โดยข้อมูลที่ถูกแก้ไข จะถูกระบุอยู่ในไฟล์ ldif เช่น ตัวอย่างนี้จะเป็นการแก้ไขข้อมูล homeDirectory ของ user01 ให้เป็นค่าใหม่คือ /new-home/user01 และเพิ่ม gecos โดยมีค่าเป็น “User01 GECOS Name”
[root@fc9-min ldif]# cat modify-user01.ldif dn: uid=user01,ou=People,dc=test-ldap,dc=com changetype: modify replace: homeDirectory homeDirectory: /new-home/user01 - add: gecos gecos: User01 GECOS Name -
ใช้คำสั่ง getent เพื่อเปรียบเทียบข้อมูลก่อนและหลังรันคำสั่ง ldapmodify
[root@fc9-min ldif]# getent passwd user01 user01:x:1001:100:user01:/home/user01:/bin/bash
[root@fc9-min ldif]# ldapmodify -x -D "uid=root,ou=People,dc=test-ldap,dc=com" \ -W -f modify-user01.ldif Enter LDAP Password: modifying entry "uid=user01,ou=People,dc=test-ldap,dc=com"
[root@fc9-min ldif]# getent passwd user01 user01:x:1001:100:User01 GECOS Name:/new-home/user01:/bin/bash
ลบ user
ใช้คำสั่ง ldapdelete เพื่อลบผู้ใช้งานออกจาก OpenLDAP โดยต้องระบุชื่อผู้ใช้เป็นค่า CN ของผู้ใช้นั้นๆ เช่นต้องการลบ user01 ที่มี CN: uid=user01,ou=People,dc=test-ldap,dc=com
[root@fc9-min bin]# ldapdelete -x -D uid=root,ou=People,dc=test-ldap,dc=com –W \ uid=user01,ou=People,dc=test-ldap,dc=com Enter LDAP Password:
[root@fc9-min bin]# getent passwd user01 [root@fc9-min bin]#