安裝openldap,參考:
https://www.alibabacloud.com/blog/how-to-install-openldap-and-phpldapadmin-on-ubuntu-16-04_594318 https://www.cnblogs.com/hzw97/p/11592244.html#_lab2_3_0
先卸載干凈
sudo apt remove --purge slapd ldap-utils
再安裝
sudo apt-get install slapd ldap-utils
設置管理員密碼,直接確定,后面配置admin的時候會再次配置
配置ldap admin賬號密碼
sudo dpkg-reconfigure slapd
配置dc
組織名
設置admin賬號密碼
database選擇MDB
否
是
否
查看ldap狀態
sudo systemctl status slapd
安裝phpldapadmin
1.首先卸載掉老的phpldapadmin
sudo apt remove --purge phpldapadmin
2.安裝
sudo apt-get install phpldapadmin
3.修改config.php
sudo vim /etc/phpldapadmin/config.php $servers->setValue('server','base',array('dc=hadoop,dc=com')); $servers->setValue('login','bind_id','cn=admin,dc=hadoop,dc=com');
如果出現報錯
Conf phpldapadmin disabled. apache2_invoke postrm: Disable configuration phpldapadmin.conf apache2.service is not active, cannot reload. invoke-rc.d: initscript apache2, action "reload" failed
然后訪問頁面,出現的是404
http://master/phpldapadmin
那是phpldapadmin安裝失敗
有可能是apache2的80端口被nginx占用導致的,輸出命令查看80端口的占用情況
sudo netstat -tulpn | grep :80
可以看到nginx占用了apache2的80端口,但是ldap又需要使用apache2
查看apache2的狀態
/etc/init.d/apache2 reload
所以apache2服務是有問題的
關閉nginx
sudo service nginx stop
打開apache2
sudo service apache2 start
或者也可以修改apache2的默認端口
vim /etc/apache2/ports.conf
修改80成其他的,然后
vim /etc/apache2/sites-enabled/000-default.conf
修改 <VirtualHost *:80>
然后重啟apache2
sudo service apache2 restart
重新安裝phpldapadmin,正常安裝
apt-get install phpldapadmin 正在讀取軟件包列表... 完成 正在分析軟件包的依賴關系樹 正在讀取狀態信息... 完成 下列軟件包是自動安裝的並且現在不需要了: gimp-data gimp-help-common gimp-help-en lame libamd2.4.1 libbabl-0.1-0 libcamd2.4.1 libccolamd2.9.1 libcholmod3.0.6 libgegl-0.3-0 libgimp2.0 libjavascriptcoregtk-1.0-0 libqgsttools-p1 libqt4-svg libqt5multimedia5-plugins libqt5multimediawidgets5 libumfpack5.7.1 libwebkitgtk-1.0-0 libwebkitgtk-1.0-common 使用'sudo apt autoremove'來卸載它(它們)。 下列【新】軟件包將被安裝: phpldapadmin 升級了 0 個軟件包,新安裝了 1 個軟件包,要卸載 0 個軟件包,有 0 個軟件包未被升級。 需要下載 0 B/727 kB 的歸檔。 解壓縮后會消耗 5,104 kB 的額外空間。 正在預設定軟件包 ... 正在選中未選擇的軟件包 phpldapadmin。 (正在讀取數據庫 ... 系統當前共安裝有 288553 個文件和目錄。) 正准備解包 .../phpldapadmin_1.2.2-5.2ubuntu2.1_all.deb ... 正在解包 phpldapadmin (1.2.2-5.2ubuntu2.1) ... 正在設置 phpldapadmin (1.2.2-5.2ubuntu2.1) ... Creating config file /etc/phpldapadmin/config.php with new version apache2_invoke: Enable configuration phpldapadmin.conf
訪問頁面,成功
http://master/phpldapadmin
賬號就是admin和剛剛安裝ldap的時候設置的password
往ldap上導入os上的組織
可以選擇自己新建ou,選擇 Generic: Organisational Unit,新建Group和People兩個ou
也可以使用命令批量導入os上的ou
首先安裝遷移工具 migrationtools
sudo apt-get install migrationtools
修改配置
vim /etc/migrationtools/migrate_common.ph
將下面
# Default DNS domain $DEFAULT_MAIL_DOMAIN = "padl.com"; # Default base $DEFAULT_BASE = "dc=padl,dc=com";
修改成
# Default DNS domain $DEFAULT_MAIL_DOMAIN = "example.com"; # Default base $DEFAULT_BASE = "dc=example,dc=com";
參考了
https://www.cnblogs.com/hzw97/p/11592244.html#_lab2_3_0
生成文件模板
lintong@master:~/下載$ /usr/share/migrationtools/migrate_base.pl > ./linux_base.ldif
將模板中將ldap上已有的entry去掉,否則會導入失敗
dn: dc=example,dc=com dc: example objectClass: top objectClass: domain
如下報錯
adding new entry "dc=example,dc=com" ldap_add: Already exists (68)
去掉后再次導入,XXXXXX是bind_password
sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -w XXXXXX -f ./linux_base.ldif
導入成功
adding new entry "ou=Protocols,dc=example,dc=com" adding new entry "nisMapName=netgroup.byuser,dc=example,dc=com" adding new entry "ou=Services,dc=example,dc=com" adding new entry "ou=Networks,dc=example,dc=com" adding new entry "ou=People,dc=example,dc=com" adding new entry "nisMapName=netgroup.byhost,dc=example,dc=com" adding new entry "ou=Rpc,dc=example,dc=com" adding new entry "ou=Netgroup,dc=example,dc=com" adding new entry "ou=Group,dc=example,dc=com" adding new entry "ou=Mounts,dc=example,dc=com" adding new entry "ou=Aliases,dc=example,dc=com" adding new entry "ou=Hosts,dc=example,dc=com"
去phpldapadmin上查看
導入os用戶,/etc/passwd文件中記錄了linux上所有的os用戶
cat /etc/passwd > ./people.txt /usr/share/migrationtools/migrate_passwd.pl ./people.txt ./people.ldif
遷移到ldap中
sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -w XXXXXX -f ./people.ldif
去phpldapadmin上查看
導入os組
cat /etc/group > ./group.txt /usr/share/migrationtools/migrate_group.pl ./group.txt ./group.ldif
遷移到ldap中
sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -w XXXXXX -f ./group.ldif
成功
ldap查詢entry,-W是交互式輸入密碼,-w "密碼"
ldapsearch -x -LLL -H ldap://master:389 -D "cn=admin,dc=example,dc=com" -W -b "dc=example,dc=com" -s base
ldap的備份和遷移參考:How To Backup and Restore OpenLDAP