• Ubuntu16.04安装openldap和phpldapadmin


    安装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
    

    安装phpldapadmin

    1.首先卸载掉老的phpldapadmin

    sudo apt remove --purge phpldapadmin
    

    2.安装

    sudo apt-get install phpldapadmin
    

    如果出现报错

    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
    

     

  • 相关阅读:
    策略梯度训练cartpole小游戏
    关于不执行整个大项目而是执行其中一部分独立文件夹的时候的python运行方法
    和textrank4ZH代码一模一样的算法详细解读
    K8s常用命令
    python标准库
    chrome通过devtools来查看Devtools Extension与浏览器内核实际通信的数据情况
    修改文件MD5值
    使用charles过滤网络请求
    git中working tree, index, commit
    Maven中settings.xml的配置项说明
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/13661323.html
Copyright © 2020-2023  润新知