Board logo

标题: 将 LDAP 目录用于 Samba 认证-用户管理 [打印本页]

作者: look_w    时间: 2018-4-18 20:31     标题: 将 LDAP 目录用于 Samba 认证-用户管理

管理 Samba 用户在开始执行将用户添加到 LDAP 目录的实际操作之前,迅速复习一下与用户/机器帐户有关的 Samba 规则以及这些规则是如何在访问 LDAP 存储时规范 Samba 的行为,这样做是没有坏处的。
LDAP 的帐户结构迄今为止,我们对 LDAP 帐户结构的大多数讨论,都太过理论化了。为了进一步了解 LDAP 下的 POSIX 帐户和 Samba 帐户的差异,同时为了更详细地说明前一页中讨论的帐户创建过程,让我们研究一个示例。下面显示了一位用户的 LDIF(LDAP 目录信息文件,LDAP Directory Information File)输出,该用户是用下列命令创建的:/usr/local/sbin/smbldap-useradd.pl -m -P tom (“-m”基于 /etc/skel 中包含的模板创建用户目录和概要;“-P”在添加了该用户之后提示输入密码)。要产生实际 LDIF 输出:/usr/local/sbin/smbldap-usershow.pl tom
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@thor sbin]# /usr/local/sbin/smbldap-usershow.pl tom
dn: uid=tom,ou=Users,dc=syroidmanor,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
cn: tom
uid: tom
uidNumber: 500
gidNumber: 100
homeDirectory: /hometom
loginShell: /bin/bash
gecos: User
description: User
userPassword:: e1NTSEF9bWxBL1RHZFNoTkREEWlGTndZOFlCWUVUdWp3MGgrbTc=




接下来,让我们将另一个用户添加到同一用户项,并执行下列操作:
1
2
3
4
5
6
7
root@thor root # useradd -p test tom2
root@thor root # /usr/local/samba/bin/smbpasswd tom2
New SMB password: typesecretpassword
Retype new SMB password: typesecretpassword
User added
All authentication tokens updated
root@thor root #




现在,如果输入 /usr/local/sbin/smbldap-usershow.pl tom,则获得下列输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
dn: uid=tom,ou=Users,dc=syroidmanor,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: sambaAccount
cn: tom
uid: tom
uidNumber: 500
gidNumber: 100
homeDirectory: /hometom
loginShell: /bin/bash
gecos: User
description: User
userPassword:: e1NTSEF9bWxBL1RHZFNoTkREEWlGTndZOFlCWUVUdWp3MGgrbTc=
lmPassword: 552902031BEDE9EFAAD3B435B51404EE
pwdCanChange: 0
pwdMustChange: 2147483647
ntPassword: 878D8014606CDA29677A44EFA1353FC7
pwdLastSet: 1010179230
rid: 2000




如您所见,用户 tom 的 LDIF 现在同时具有 posixAccount 详细信息和 sambaAccount 信息。
侧栏:uid、gid 和 RID您也许在 Samba 文档或者可能是在 LDAP 帐户的输出中见到过对术语 RID 的引用。那么什么是 RID 呢?UNIX 操作系统(包括象 Linux 这样的派生物)通过整数 uid(用户标识,User ID)唯一地标识用户,并通过整数 gid(组标识,Group ID)唯一地标识组。当以某一用户登录时,通过输入 id 即可访问这个信息。
当前的 Microsoft 操作系统通过称为 RID 的值唯一地标识用户和组,该值通常是一个用十六进制表示的整数。在 UNIX 下,用户和组存在于独立的名称空间中。而在 Microsoft 操作系统上,用户和组存在于一个名称空间中。
Samba 使用下列公式将 UNIX uid 和 gid 映射为 RID:
1
2
rid = 2 (uid) + 1000
rid = 2 (gid) + 1001




因此,如果工作在 Red Hat 系统上的用户 tom,其 uid 为 500,gid 为 500,则映射到 Microsoft 域中的 RID 分别为 2000 和 2001。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0