通过Winbind将Linux加入到Windows 域
===================Winbind简介=====================
Winbind 是一款 Samba 组件,在 CentOS 系统下,他被包含在了 samba-common 包中。 Winbind 在Linux上实现了微软的RPC调用、可插式验证模块和名字服务切换,通过 samba 接口与 Windows 域控获得联系,可以使NT域用户能在Linux主机上以Linux用户身份进行操作。通过设定 Linux 服务器的 nss 配置,我们可以让系统通过 Winbind 程序来解析用户信息。
====================NSS简介=======================
NSS 是 Sun 公司开发用于定义系统中配置文件查顺序的工具。他的配置文件在 /etc/ 。通过他我们可以定义系统在登录时通过 Winbind 来获取用户信息,而不只是本地配置文件:/etc/passwd 。
以下是可能出现在 /etc/ 中的项目:
aliases 邮件别名;
passwd 系统用户;
group 用户组;
shadow 隐蔽口令;
hosts 主机名和I P地址;
networks 网络名和号;
protocols 网络协议;
services 端口号和服务名称;
ethers 以太网号;
rpc 远程进程调用的名称和号
netgroup 网内组
在本文中,我们需要修改的是:
passwd 系统用户;
group 用户组;
您需要将这两项修改为:
passwd: files winbind
group: files winbind
个别参考资料将 shadow 也添加了 winbind 参数,我觉得没有必要。
files 表示将从本地文件读取用户、组信息,而 winbind 参数则表示经过 winbind 从域读取用户信息。
=================安装 Samba 配置 Winbind=================
1.通过 yum 安装 samba
[root@localhost etc]# yum install samba samba-common
Setting up Install Process
Setting up repositories
update 100% |=========================| 951 B 00:00
base 100% |=========================|  kB 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================|  kB 00:00
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
–> Populating transaction set with selected packages. Please wait.
—> Downloading header for samba-common to pack into transaction set.
100% |=========================| 38 kB 00:01
—> Package  0: set to be updated
—> Downloading header for samba to pack into transaction set.
100% |=========================| 101 kB 00:02
—> Package  0: set to be updated
–> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
samba i386  update 13 M
samba-common i386  update  M
Transaction Summary
=============================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 18 M
Is this ok [y/N]: y
linux怎么读取windows文件
2.检查 Winbind 库文件。
确保系统 lib 目录下已经包含  库文件。
[root@localhost etc]# ls /usr/lib | grep winbind
[root@localhost etc]#
3.配置 Samba
打开 samba 配置文件,/etc/samba/ 。
vi /etc/samba/
我们对 [global] 标签下的内容进行配置:
workgroup = ABC #你的域名 比如完整域名为: ,则 ABC 写 LINUXBLOG。
wins support = yes #开启 wins 服务器支持。
wins server =  #这里填写你的域控服务器地址,中间以空格分隔。
wins proxy = yes
security = ADS #关于 security level 的详细资料你可以查看 Samba 官方资料。这个选项我见过使用 Domain 的,也见过使用 AD 的。我使用 ADS也是成功的,暂时未搞懂他们的区别。
添加以下内容:
acl compatibility = win2k
idmap uid = 4431 #idmap uid 和 idmap gid是设置winbind把win200x域用户、组map成本地用户、组所使用的ID号范围,如果你的用户很多,可以加大这两个值之间的差。
idmap gid = 4431
password server =    #解析用户密码的服务器,自然是 DC
map to guest = bad user
guest ok = no
realm =  # realm 有域的含义,可能是指定完整域名。
encrypt psswords=cyes
winbind use default domain = yes
template homedir = /home/%D/%U 指定用户目录格式 /home/域名/用户名请手动创建域名目录,并且将其设置为 777。不然域用户无法正常登入主机。
template shell = /bin/bash #指定登入用户使用的 shell
4. 配置 Kerbers
vi /etc/
以下是一个典型的未配置的文件:
[logging]
default = FILE:/var/log/
kdc = FILE:/var/log/
admin_server = FILE:/var/log/
[libdefaults]
default_realm =
dns_lookup_realm = false
dns_lookup_kdc = false
[realms]
= {
kdc =
admin_server =
default_domain =
}
[domain_realm]
. =
=
[kdc]
profile = /var/kerberos/krb5kdc/
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
最简单的配置方法,就是将  全部替换成你的域名(大小写需要保持一致),必要的地方写上IP:
[logging]
default = FILE:/var/log/
kdc = FILE:/var/log/
admin_server = FILE:/var/log/
[libdefaults]
default_realm =
dns_lookup_realm = false
dns_lookup_kdc = false
[realms]
= {
kdc =
admin_server =
default_domain =
}
[domain_realm]
. =
=
[kdc]
profile = /var/kerberos/krb5kdc/
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
5.加域
在加域之前,一定要将 samba 服务以及 winbind 服务重新启动一下,以便能够加载配置好的参数。
[root@localhost ]# service smb restart
Shutting down SMB services: [FAILED]
Shutting down NMB services: [FAILED]
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
[root@localhost ]# service winbind restart
Shutting down Winbind services: [FAILED]
Starting Winbind services: [ OK ]