一:創建用戶
1:概述
默認情況下在slapd.conf文件中配置有超級管理員賬號,除了這個賬號外,我們還可以添加其他的管理員賬號,並控制相應的權限,比如只讀,可寫。Ldap新增用戶,可以通過客戶端工具實現,也可以通過命令來實現。我這裏主要通過ldapadd命令來實現。
目前ldapadd命令只支持ldif格式文件,生成LDIF格式文件
往openldap數據庫存放數據,有多種方式:1. 手動編輯;2. 用工具生成
手動編輯這裏不介紹。工具生成指的是用migrationtools腳本來產生ldif文件
2:安裝migrationtools
2.1安裝
yum -y install migrationtools
2.2確認是否安裝完成
yum list installed | grep migrationtools
3:創建linux用戶組和用戶
3.1創建用戶組和用戶(密碼設置爲123456)
groupadd ldapgroupxu
useradd -g ldapgroupxu ldapuserxu
passwd ldapuserxu
3.2驗證是否創建成功
4:修改migrationtools配置文件
cd /usr/share/migrationtools 可以看到很多的文件
vim migrate_common.ph(修改前先備份下)
這裏改爲自己需要修改的即可。
5:將系統用戶生成ldif文件
備註:其實ldap用戶和linux系統用戶我理解沒有什麼關係,這裏這麼弄只是爲了用工具生成固定格式的ldif文件,後期可以不用建linux用戶,自己編輯ldif文件即可。
5.1生成符合ldap格式的ldif文件
cd /usr/share/migrationtools 在這個目錄下執行下面兩句,可以看到,生成了兩個文件
./migrate_passwd.pl /etc/passwd passwd.ldif
./migrate_group.pl /etc/group group.ldif
5.2修改整理ldif文件,刪除系統賬號與不需要的賬號以及用戶組
這裏只留下自己創建的即可。
6:導入所屬組和密碼文件
6.1導入組LDIF 文件至OpenLDAP 目錄樹中,生成用戶組
ldapadd -x -W -D "cn=ldapadmin,dc=example,tongdc=com" -f group.ldif
ldapadd -x -W -D " uid=ldapadmin,dc=example,dc=com" -f group.ldif
這個時候會報錯,是因爲group.ldif中的ou=Group沒有,所以需要創建
6.2通過客戶端工具創建ou
我這裏使用的是ldapadmin工具來創建的。
然後再次運行
6.3通過ldif文件導入,生成ou
創建ldap的根項目
新建一個ldapbase.ldif文件
內容爲
dn: dc=example,dc=com
dc: example
objectClass: top
objectClass: domain
dn: ou=Group,dc= example,dc=com
objectClass: organizationalUnit
ou: Group
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
上傳到/usr/share/migrationtools目錄
執行以下命令
ldapadd -x -W -D " uid=ldapadmin,dc=example,dc=com " -f ldapbase.ldif
6.4導入用戶LDIF 文件至OpenLDAP 目錄樹中,生成用戶
ldapadd -x -W -D " uid=ldapadmin,dc=example,dc=com " -f passwd.ldif
運行命令前創建ou= People
7:連接ldap
進入後提示
然後測試鏈接 如果成功就OK了.. 真的是這樣麼??? NO....
錯誤一: 當你測試鏈接成功以後點擊OK. 然後雙擊這個綠色的小房子會報錯!!提示 "ldap error 無此對象"
錯誤二:當你使用命令通過ldif文件導入OU的時候會提示 "ldap_add: No such object (32)"
報錯與解決:
其實這兩個錯的是同一個問題引起的. 你在配置文件裏面添加了 suffix "dc=enfinium,dc=local" 但是啓動服務後,ldap並沒有給你創建根項目.所以在ldif文件中要配置創建根項目的語句
7.1創建ldap的根項目
新建一個ldapbase.ldif文件
內容爲
dn: dc=example,dc=com
dc: example
objectClass: top
objectClass: domain
dn: ou=Group,dc=example,dc=com
objectClass: organizationalUnit
ou: Group
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
上傳到/usr/share/migrationtools目錄
執行以下命令
ldapadd -x -W -D " uid=ldapadmin,dc=example,dc=com " -f ldapbase.ldif
可以通過-c參數,強制添加,就可以了
ldapadd -x -c -W -D "uid=ldapadmin,dc=example,dc=com" -f ldapbase.ldif
ldapsearch -x -H ldap://***:389 -b "uid=90001019,cn=person,dc=example,dc=com" -D "uid=ldapadmin,dc=example,dc=com" -w *****
7.2如果上面的步驟執行完成後,連接仍然報錯。需要執行以下步驟
service slapd start
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown -R ldap:ldap /etc/openldap/slapd.d/
service slapd restart
修改權限
chown -R ldap.ldap /etc/openldap/*
chown -R ldap.ldap /var/lib/ldap/*
至此ldap的用戶已創建成功,下面就是權限控制了。