免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 13455 | 回复: 12
打印 上一主题 下一主题

[ldap] OpenLDAP、Samba-->域管理器的OU问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-02 20:26 |显示全部楼层 |倒序浏览
    前几天在这里问过一个相似但笼统的问题,现在详细的叙述并恳请各位好人帮帮忙!
    实现的域管理器的环境是:RedHat AS4 UP4及其自带的OpenLDAP、Samba;另外装了必要的插件,如smaldap-tools;管理工具phpLDAPadmin。
    整个域管理器配置好后可由phpLDAPadmin查看相关信息,有截图。

    其中ou=Users_Test是通过复制ou=Users得到的。配置域管理器的关键参数有:
/etc/ldap.conf:
    nss_base_passwd ou=Users,dc=easy,dc=com?one
    nss_base_passwd ou=Computers,dc=easy,dc=com?one
    nss_base_shadow ou=Users,dc=easy,dc=com?one
    nss_base_group ou=Groups,dc=easy,dc=com?one
/etc/openldap/slapd.conf:
   access to attrs=userPassword,sambaLMPassword,sambaNTPassword
        by self write
        by anonymous auth
        by * none
    access to *
        by * read
/etc/samba/smb.conf:
        ldap admin dn = cn=Manager,dc=easy,dc=com
        ldap suffix = dc=easy,dc=com
        ldap group suffix = ou=Groups
        ldap user suffix = ou=Users_Test
        ldap machine suffix = ou=Computers
    在配置好后用smbldap-useradd添加了用户user001~user006,其中user004、user006是通过修改/etc/smbldap-tools/下的smbldap-tools的配置文件,将OUsuffix由Users改为Users_Test后得到的
    在进行了这些操作后,用户user001、user002、user003、user005可以用作客户端用户登录。而user004和user006则不能在客户端登录成功。就对OpenLDAP而言,这些用户除了OU不同,其余一致。
    后来尝试修改过上面的几个配置文件,user004和user006依然不能原来登录。感觉上似乎是不能搜索到OU=Users_Test,我尝试过将配置文件中存在ou=Users的地方删除以扩大搜索范围的方法,可结果与不删除的一样。
    现在想弄清楚上面的配置的具体含义,虽然能从OpenLDAP及Samba的功能猜出配置文件的大概含义,但不知道如何实现OU不同的用户均能实现客户端登录

下面是在Linux上用smbclient命令的输出
smbclient -L 127.0.0.1 -U user006
Password: 输入密码后得到
session setup failed: NT_STATUS_LOGON_FAILURE


[ 本帖最后由 戏园子 于 2007-7-2 20:57 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-07-02 21:01 |显示全部楼层
其实就是想通过ou不同来实现用户的分组管理。在可以实现ou不同的用户均能实现客户端登录后还需进一步考虑ou不同的用户的权限分配问题,目前第一步还没有实现。请帮忙!

ldapsearch.rar

1.56 KB, 下载次数: 74

ldapsearch输出

论坛徽章:
0
3 [报告]
发表于 2007-07-03 12:48 |显示全部楼层
通过smbldap-useradd增加的用户都属于用户组Domain User,在上面的例子中ou=Users与ou=Users_Test中的用户均是Domain User中的成员,Domain User的gid是513,在上面的配置中user001~user006的gid都是513。
/etc/ldap.conf中的配置有:
    nss_base_passwd ou=Users,dc=easy,dc=com?one
    nss_base_passwd ou=Computers,dc=easy,dc=com?one
    nss_base_shadow ou=Users,dc=easy,dc=com?one
    nss_base_group ou=Groups,dc=easy,dc=com?one
能不能在nss_base_passwd,nss_base_shadow的键值中添加ou=Users_Test?
在配置域管理器的参数时有不少配置的含义不是很清楚,不知道哪里有对这些的参数得详细说明,查阅www.openldap.org的相关文档好像没有找到。

[ 本帖最后由 戏园子 于 2007-7-3 12:51 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2007-07-03 12:53 |显示全部楼层
原帖由 alvis 于 2007-7-3 12:08 发表
如果你必須在 ldap 上用不同分支來代表不同用戶組的話,你就要修改
ldap.conf 上的 group 過濾器,使系統得到正確的分組信息


您的意思是ldap没有成功找到ou=Users_Test的分支吗,我也感觉samba的功能是将OpenLDAP映射出去,问题应该在ldap的配置上。
谢谢!

论坛徽章:
0
5 [报告]
发表于 2007-07-03 15:43 |显示全部楼层
曾经做过这个测试,对用户的主目录进行ls -l,上面用户的主目录为/home/user00*,用ls -l后,只有ou=Users的用户能显示uid、gid对应的uid、gid的名字,而ou=Users_Test的用户只是显示uid、gid的数值。

论坛徽章:
0
6 [报告]
发表于 2007-07-04 11:39 |显示全部楼层
我把/etc/ldap.conf中:
nss_base_passwd ou=Users,dc=easy,dc=com?one
nss_base_shadow ou=Users,dc=easy,dc=com?one
改成:
nss_base_passwd dc=easy,dc=com?sub
nss_base_shadow dc=easy,dc=com?sub
就好了,其实就是您所说的用户过滤器的问题。

新的问题是如何通过命令行添加用户的组及分支,用ldapadd吗?

[ 本帖最后由 戏园子 于 2007-7-4 11:45 编辑 ]

DomainStruction.JPG (51.93 KB, 下载次数: 50)

DomainStruction.JPG

论坛徽章:
0
7 [报告]
发表于 2007-07-04 14:53 |显示全部楼层
其实通过smbldap-tools的命令对用户进行操作是比较方便,目前的测试中有不少用户是通过这种方法添加的。问题是还不知道怎样修改smbldap-useradd以实现自如的用户操作。还有通过phpLDAPadmin对域进行管理是方便的,可是这毕竟不能用到所谓的自己开发的东西中吧。
smbldap-tools是用perl对ldap、smb的命令进行了整合,只是具体要用ldap的命令时还是一头雾水。
目前的目录结构是测试,后面牵涉到权限问题后可能会对目录结构进行调整。

谢谢alvis及版主的帮忙!!

[ 本帖最后由 戏园子 于 2007-7-4 15:05 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2007-07-05 10:44 |显示全部楼层
目前找到一个添加用户组与ou的方法,就是用phpLDAPadmin的Export功能先导出ldif文件,再根据自己的需要手工编辑一下,再用ldapadd的命令导入就能添加了。

现在急需解决的问题是:用模拟的域管理器中用户登录到windows2003上后,想在windows2003上根据域中分组来实现组的权限
在域管理器这一端,其中/etc/openldap/slapd.conf中有access的配置,但是感觉这个配置的是对ldap访问的权限设置,怎样才能在用域用户登录2003后,用这个用户建立的文件自动具有“组内查看,组外不可见,自己完全权限”的功能。


举例:
在域管理器中有两个组:group1、group2,组ID是520、521;group1中有用户user1_1、user1_2,group2中有用户user2_1、user2_2;
在2003上用user1_1登录后,建立文件file1_1,要让这个文件能被user1_2查看,而用户user2_1、user2_2不能查看


[ 本帖最后由 戏园子 于 2007-7-5 10:52 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2007-07-06 12:41 |显示全部楼层
原帖由 cnchun 于 2007-7-5 18:54 发表
怎么这么费事情,累不累 ...


首先采用OpenLDAP+Samba模拟的域可以用来进行异构系统的认证,其次在Linux下编程很灵活!

To 两位好人:
这两天忙于评职称的事,没有好好消化两位的帮忙。

论坛徽章:
0
10 [报告]
发表于 2007-07-09 12:59 |显示全部楼层
通过最近对LDAP的研究,特别是两位好人的帮忙,对OpenLDAP+Samba模拟域管理器有了一个比较清晰的整体认识。
对LDAP的access的权限设置还是有些不清楚,虽然我看了OpenLDAP的官方手册中的相关部分。问题是对分组的权限设置方面的。
如图,有两个分组,windwos客户端用LDAP中的用户登录,首先需要让该用户拥有相应权限,就是将LDAP中的用户添加到windows上的用户管理中,这时需要输入LDAP的授权用户与密码,一般是root与其密码,现在不想通过root来授权,而是想让分组中的一个用户充当组管理员,组内的用户权限有组管理员来管理。
我设置的/etc/opanldap/slapd.conf的相关内容是:
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
        by self write
        by anonymous auth
        by * none

access to dn="cn=Domain1,ou=Groups,dc=easy,dc=com"
        by dn="uid=user001,ou=Users,dc=easy,dc=com" write
        by self write
        by * none

access to dn="cn=Domain2,ou=Groups,dc=easy,dc=com"
        by dn="uid=user003,ou=Users,dc=easy,dc=com" write
        by self write
        by * none

access to *
        by * read

经过上面的设置,做实验失败,失败的情况是:
用户组1内的用户加入windows用户管理时提示输入授权用户与密码,这时用任何LDAP用户进行授权都可以,而不是我希望的仅仅user001有权。

[ 本帖最后由 戏园子 于 2007-7-9 13:03 编辑 ]

GroupProblem.JPG (38.84 KB, 下载次数: 46)

GroupProblem.JPG
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP