Openldap导入数据(三)

无论是通过本地系统用户和组转换为ldap相关数据,还是通过ldif文件导入,都无法做到所见即所得,仿佛openldap就无法有一个真正可视化的操作界面一样。我们都知道,通过本地系统转换步骤繁琐,通过ldif进行导入或ldapadd交互命令录入又容易出错,且需要对ldap数据结构特别清晰,所以如果有可视化的界面的话,对openldap的管理和编辑就会变得大大简化。值得高兴的是,这种可视化的工具很早就出现了,而且大大提高了我们的工作效率,在此就分别介绍一下Linux上和Windows上的ldap可视化管理工具。

Linux上的ldap管理工具

首先是Linux上的,主要介绍Ldap Account Manager和PhpLdapAdmin这两个软件,由于在Linux上进行可视化操作,都是借助于web的方式进行展现,所以需要安装web软件。而这两款软件都是基于php开发,所以还需要安装php以及运行库进行支持。由于是测试,我就将openldap和客户端管理软件(LAM和PLA)安装在同一台Linux上,如果是生产环境,可以考虑分别部署。

1、Ldap Account Manager的安装介绍

首先,我对虚拟机进行一个快照的还原,还原到之前完成openldap安装,但是还没有导入任何数据的状态,先进行一个查询进行确认。这仅仅是为了确认,环境是刚刚部署的,且在没有任何数据的情况下,如何通过Ldap Account Manager进行数据的初始化和数据的补充完善。

[[email protected] ~]# ldapsearch  -x -b "dc=contoso,dc=com"

# extended LDIF

#

# LDAPv3

# base <dc=contoso,dc=com> with scope subtree

# filter: (objectclass=*)

# requesting: ALL

#

# search result

search: 2

result: 32 No such object

# numResponses: 1

1)安装依赖软件包

yum install -y httpd php php-ldap php-gd

2)下载ldap account manager源码包

 wget 
http://jaist.dl.sourceforge.net/project/lam/LAM/4.2/ldap-account-manager-4.2.tar.gz

3)修改配置

mv ldap-account-manager-4.2.tar.gz /var/www/html/
cd /var/www/html/
tar -zxf ldap-account-manager-4.2.tar.gz
mv ldap-account-manager ldap
cd ldap/config
[[email protected] config]# ll
total 28
-rw-r--r-- 1 root root  241 Mar 26  2012 config.cfg_sample
-rw-r--r-- 1 root root 2408 Mar 26  2012 lam.conf_sample
-rw-r--r-- 1 root root 1041 Mar 26  2012 language
drwxr-xr-x 3 root root 4096 Mar 26  2012 pdf
drwxr-xr-x 2 root root 4096 Mar 26  2012 profiles
drwxr-xr-x 2 root root 4096 Mar 26  2012 selfService
-rw-r--r-- 1 root root  183 Mar 26  2012 shells
cp config.cfg_sample config.cfg
cp lam.conf_sample lam.conf
sed -i ‘s/cn=Manager/cn=admin/g‘ lam.conf
sed -i ‘s/dc=my-domain/dc=contoso/g‘ lam.conf
sed -i ‘/treesuffix/s/dc=mydomain,dc=org/dc=contoso,dc=com/‘ lam.conf
#注意这里要修改,不然你在web界面看不到自己的域树
[[email protected] config]# diff lam.conf_sample lam.conf
8c8
< serverURL: ldap://localhost:389
---
> serverURL: ldap://192.168.49.138:389
13c13
< admins: cn=Manager,dc=my-domain,dc=com
---
> admins: cn=admin,dc=contoso,dc=com
20c20
< treesuffix: dc=yourdomain,dc=org
---
> treesuffix: dc=contoso,dc=com
55c55
< types: suffix_user: ou=People,dc=my-domain,dc=com
---
> types: suffix_user: ou=People,dc=contoso,dc=com
59c59
< types: suffix_group: ou=group,dc=my-domain,dc=com
---
> types: suffix_group: ou=group,dc=contoso,dc=com
63c63
< types: suffix_host: ou=machines,dc=my-domain,dc=com
---
> types: suffix_host: ou=machines,dc=contoso,dc=com
67c67
< types: suffix_smbDomain: dc=my-domain,dc=com
---
> types: suffix_smbDomain: dc=contoso,dc=com

4)启动apache服务

chown -R apache:apache /var/www/html/ldap
/etc/init.d/httpd start

5)浏览器打开并在web中管理ldap

好吧,输入http://192.168.49.138/ldap/templates/tree/treeViewContainer.php,  就会看到LAM的登录界面,输入管理员的密码,选择喜欢的语言,登录。

由于我的openldap没有任何数据,包括base等信息,这里提示帮助我进行创建,同意就好。

base,people等信息创建完成之后,我先创建一个组,然后再向这个组中添加用户,选择组,然后新组。

输入组的相关信息,保存即可成功创建一个用户组。

再选择用户标签,新建一个用户,首先输入用户个人信息,

然后是Unix信息,也即在Linux Server上的用户名密码等信息,类似于/etc/passwd保存的信息。

还有Shadow属性,如果有需要使用的话,可以启动该扩展。

关于samba的设置,如果有samba服务器的话,可以在此添加相关设置。

最后,给用户设置一个密码,确定完成。

点击保存按钮,用户的新建也就完成了。

回到用户标签,可以查看创建好的用户,当然也可以对用户进行编辑和删除等操作,也就是说,用户的增删改查都在这里进行。

回到组标签中,可以查看创建好的组,跟用户标签一样,对组的增删改查都可以在这里进行。

点击右上角的“树状结构”可以看到域树,有点类似Windows AD的结构,能对域的结构一目了然。

补充一点:

如果这里无法显示,那么结果的方法是:

第一:检查域的base节点是否创建,如果没有可以通过ldif导入或者手工录入。

第二:注意lam.conf中的treesuffix是否修改为自己的域名,默认为mydomain.org。

第三:检查LAM版本,如果前两步都已修改扔无法显示,可以考虑换更新的版本进行尝试。我的配置使用LAM3.7无法显示,换4.2能正常显示。

关于Lamp Account Manager的使用说明,就到此为止了。

2、PhpLadpAdmin的安装介绍

下面就直接在上面的基础上进行PLA的安装,因为PLA和LAM一样都依赖于php和apache,这里就省略安装过程了。

1)安装依赖软件包

 yum install -y httpd php php-ldap php-gd

2)下载phpldapadmin软件包

wget http://nchc.dl.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.zip

3)修改phpldapadmin配置文件

mv phpldapadmin-1.2.3.zip /var/www/html/
cd /var/www/html/
unzip phpldapadmin-1.2.3.zip
mv phpldapadmin-1.2.3 phpldapadmin
cd phpldapadmin/config      
[[email protected] config]# ll
total 28
-rw-r--r-- 1 root root 24935 Oct  1  2012 config.php.example
cp config.php.example config.php

#其实如果openldap和phpldapadmin装在同一台服务器上,只需拷贝config.php即可,无须进行下面配置文件的修改,但是最好还是进行修改,万一某一天需要迁移phpldapadmin到别的server,直接拷贝配置文件即可

vi config.php

需要修改的地方主要有:

将$ldapservers->SetValue($i,’server’,‘name’,‘My LDAP Server’);这一行之后的如下内容:

// $ldapservers->SetValue($i,’server’,‘host’,’127.0.0.1′);

// $ldapservers->SetValue($i,’server’,‘port’,’389′);

// $ldapservers->SetValue($i,’server’,‘base’,array(”));

// $ldapservers->SetValue($i,’server’,‘auth_type’,‘cookie’);

# $ldapservers->SetValue($i,’login’,‘dn’,‘cn=Manager,dc=example,dc=com’);

# $ldapservers->SetValue($i,’login’,‘pass’,‘secret’);

依次对应修改为:

$ldapservers->SetValue($i,’server’,‘host’,‘192.168.49.138’);

$ldapservers->SetValue($i,’server’,‘port’,’389′);

$ldapservers->SetValue($i,’server’,‘base’,array(‘dc=contoso,dc=com’));

$ldapservers->SetValue($i,’server’,‘auth_type’,‘cookie’);

$ldapservers->SetValue($i,’login’,‘dn’,‘cn=admin,dc=contoso,dc=com’);

$ldapservers->SetValue($i,’login’,‘pass’,‘’); #这里留空,需要在浏览器中填写,不建议将dn的密码明文写在此处

4)启动apache服务

chown -R apache:apache /var/www/html/phpldapadmin
/etc/init.d/httpd restart #因为我在部署LAM的时候已经启动了httpd,所以这里用重启命令

5)在浏览器中通过PLA管理ldap

打开浏览器,输入地址:http://192.168.49.138/phpldapadmin/index.php ,然后选择登录。

注意:如果这里点击登录之后,出现一系列的错误,且错误信息包含:Php版本和PLA版本等信息,那就是因为版本不匹配,我的PHP版本是5.3.3,使用PLA 1.1.0就无法登录,出现包含php版本以及PLA版本的错误信息,于是更换PLA 1.2.3,更新PLA版本之后一切正常。

这里登录之后看到的界面,左侧是域的树状结构,右侧是对应的详细信息。

因为用户组sudoers已经在LAM创建过了,这里只演示创建一个新的用户。选择sudoers组,然后在右侧选择“创建一个子条目”。

在右侧的创建对象菜单中选择要创建对象的类型,可以看到PLA中的对象类型是相当丰富的,这里选择Generic: User Account。

键入用户的详细信息,然后选择“创建对象”。

最后给出新建对象的概览信息,同时这也是确认信息的操作,确认无误则提交,如果有问题还可以取消操作,我觉得这个步骤还是蛮人性化的,这里提交。

好的,用户创建成功,可以在左侧域树种看到,同样也可以点击用户在右侧查看详细信息。

如果要查看ldap相关的objectClass属相,可以选择“显示内部属性”。

再回到LAM中,刷新一下就可以看到在PLA中添加的用户了,这两个工具都可以对用户进行管控,并且可以管理对方创建的用户,所以无须担心多个管理者使用工具的不同造成数据无法统一管理,不同的只是工具,数据还是统一的,这点要注意。

时间: 2024-10-05 04:40:57

Openldap导入数据(三)的相关文章

Openldap导入数据(四)

由于篇幅有限,上一篇只介绍了Linux上ldap的两款管理软件,Ldap Account Manager和PhpLdapAdmin的部署和简单使用,只能再起一篇介绍Windows上的ldap管理软件.可能提到windows,很多玩Linux的人就会说"珍爱生命,远离Windows""戒毒戒赌戒Windows"之类的口号,可是真正能脱离windows的运维我至今也就见到过一个,好吧,就不扯远了.其实在Linux上使用LAM或者PLA,其实还是要在浏览器中进行操作,而且

openldap导入数据(二)

第二种导入数据到ldap中的方法是手工导入,当然手工导入也分为两种,第一种是通过手工编辑ldif文件,然后使用ldapadd命令导入:第二种是直接使用ldapadd命令,在交互模式下进行数据录入. 第一种:通过手工编辑ldif文件导入数据 下面我手工编辑两个ldif文件: [[email protected] ~]# cat ou.ldif dn: ou=sudoers,ou=people,dc=contoso,dc=com objectClass: organizationalUnit ou:

Openldap导入数据(一)

在安装完openldap之后,默认ldap中是没有数据的,需要管理员进行添加,当然添加的方法也不止一种,这里先介绍第一种方法:从本地系统添加用户到ldap中. [[email protected] ~]# ldapsearch -x -b "dc=contoso,dc=com" # extended LDIF # # LDAPv3 # base <dc=contoso,dc=com> with scope subtree # filter: (objectclass=*)

solr6.6教程-从mysql数据库中导入数据(三)

整理多半天的solr6.6,终于算是把solr6.6中配置数据库弄出来了,网上的文章千篇一律,各说个的,没有一篇统一覆盖solr6.6版本配置的 帖子,本章节我会把配置的一些注意事项一一列举,由于时间原因,本片只介绍如何一次性导入数据,不附带增量导入,想看增量的同学可以在后面的文章中. 1,配置准备 本文的前提是你已经配置好了solr,并新创建了一个core,我们下面都会按照前一篇文章中的core_demo为基础开始 2,修改soreconfig.xml 在soreconfig.xml的<req

MySQL 笔记(三)由 txt 文件导入数据

改编自学校实验,涉及一些字符集相关的问题. 索引 建库 导入数据 最终脚本 下载数据 点击这里 建库 create.sql DROP DATABASE IF EXISTS orderdb; CREATE DATABASE orderdb; USE orderdb; CREATE TABLE employee ( employee_no VARCHAR(8), employee_name VARCHAR(10), sex CHAR(1), birthday DATE, address VARCHA

solr8.0 从数据库导入数据(三)

第一步:导入相关包: 在创建的核心目录下新建lib文件夹(如果有,无需建立),从Solr源码包的dist文件夹中导入两个solr-dataimporthandler包,以及一个mysql驱动包. 第二步:编辑下边路径中的solrconfig文件(mycore1为自己所创建的核心文件夹): 在文件末尾添加以下内容 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.Dat

mysql导入数据load data infile用法整理

有时候我们需要将大量数据批量写入数据库,直接使用程序语言和Sql写入往往很耗时间,其中有一种方案就是使用MySql Load data infile导入文件的形式导入数据,这样可大大缩短数据导入时间. 假如是从MySql客户端调用,将客户端的文件导入,则需要使用 load local data infile. LOAD DATA INFILE 语句以很高的速度从一个文本文件中读取行到一个表中.文件名必须是一个文字字符串. 1,开启load local data infile. 假如是Linux下

Hive数据导入——数据存储在Hadoop分布式文件系统中,往Hive表里面导入数据只是简单的将数据移动到表所在的目录中!

转自:http://blog.csdn.net/lifuxiangcaohui/article/details/40588929 Hive是基于Hadoop分布式文件系统的,它的数据存储在Hadoop分布式文件系统中.Hive本身是没有专门的数据存储格式,也没有为数据建立索引,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据.所以往Hive表里面导入数据只是简单的将数据移动到表所在的目录中! Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中

django 批量导入数据

一.需求 我在数据库中建了一张表,用来保存ucloud云上的project id 和project name models.py代码如下 #coding:utf-8 from django.db import models class Project(models.Model):     name = models.CharField(u'项目名称',max_length=32,blank=True)     id = models.CharField(u'项目ID',max_length=32