เพิ่ม แก้ไข ลบ ผู้ใช้งานใน OpenLDAP

จากบทความ ติดตั้ง 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]#

ข้อมูลอ้างอิง

Leave a Reply

Your email address will not be published.