笔者这几天在研究
samba
服务通过
ad
域进行用户验证。在查资料的过程中发现。关于
linux
加入
windows
域,网上资料不少,但是按着网上的说法做大多不成功,甚至很多人估计都不知道自己在说什么,最后一个
net ads join
就认为已经成功加入到域了,可是然后呢?作为域内的一个成员
,
普通的机器要可以提供域内的用户登陆;作为
samba
服务要把共享加入到目录中,这样才起到加入域的作用嘛。笔者经过反复实验,终于把
linux
加入到
windows
域一些细节记录下来,不敢独享,特拿出。
笔者用的
linux
为
centos5.3
。
ad
域为
win2k3 sp2
。域为
:Rainbird.net
Win2k3:
Name:ad1
Ip:192.168.1.241
Dns:192.168.1.241
Centos5.3:
Name:Filesrv
Ip:192.168.1.246
Dns:192.168.1.241
Ok,let’s go!
1.samba
服务器软件需求
krb5-workstation-1.2.7-19
pam_krb5-1.70-1
krb5-devel-1.2.7-19
krb5-libs-1.2.7-19
samba-3.0.5-2
[root@filesrv CentOS]# rpm -qa|grep krb5
krb5-auth-dialog-0.7-1
krb5-libs-1.6.1-25.el5
krb5-devel-1.6.1-25.el5
pam_krb5-2.2.14-1
krb5-workstation-1.6.1-25.el5
[root@filesrv CentOS]# rpm -qa|grep samba
samba-swat-3.0.28-0.el5.8
samba-common-3.0.28-0.el5.8
samba-client-3.0.28-0.el5.8
samba-3.0.28-0.el5.8
如果
centos
在安装的时候没有取消默认选中的
”Base”,
则
krb5
的包是默认全部安装
如果没有选择安装
samba
可以这样安装
[root@filesrv CentOS]# rpm -ivh xinetd-2.3.14-10.el5.i386.rpm
[root@filesrv CentOS]# rpm -ivh –aid samba*.rpm
2.
配置
kerberos
和
samba
因为笔者用的系统为
centos
所以为保证一次成功的准确率,这里就使用字符界面下的图形工具来配置了。
运行
setup
工具
![](http://img1.51cto.com/attachment/200909/200909011251737043546.jpg)
认证配置
![](http://img1.51cto.com/attachment/200909/200909011251737059531.jpg)
选择:
“use winbind”
“use kerberos”
“use winbind authertication”
![](http://img1.51cto.com/attachment/200909/200909011251737075796.jpg)
删除
admin server
其余的改成真实情况
Realm
为域名
,KDC
为域服务器的
ip
![](http://img1.51cto.com/attachment/200909/200909011251737092796.jpg)
配置
winbind
Domain
为你的域的,左面第一个
”.”
前面的东东
![](http://img1.51cto.com/attachment/200909/200909011251737111687.jpg)
选择
”join domain”,
提示是否先保存配置信息,肯定是
yes
了。
![](http://img1.51cto.com/attachment/200909/200909011251737140218.jpg)
嘿嘿,看到这个画面是不是想到了
xp
机器加入到域的情景?没错就是那个!输入
ad
域的管理员密码吧
J
![](http://img1.51cto.com/attachment/200909/200909011251737157468.jpg)
不出意外的话,你就到达了最后一个界面,肯定
ok,
然后退出了。
![](http://img1.51cto.com/attachment/200909/200909011251737173406.jpg)
一般来说,只要两台机器的时间上下不差五分钟,且项都配置正确的话,你就会看到下面这个图片。看到这个图片说明你的
linux
成功加入到
ad
域啦
!
![](http://img1.51cto.com/attachment/200909/200909011251737191500.jpg)
OK,
用图形的好处就是方便快捷,但是这样只适合
rh
系统。别的
linux
系统咋办呢?别急。这个工具
其实就是编辑以下三个配置文件:
/etc/nsswitch.conf
passwd: files
winbind(
就是先读
files
然后再通过
winbind
认证
)
shadow: files
winbind
group: files
winbind
/etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = RAINBIRD.NET(
默认的域名
)
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
EXAMPLE.COM = {
kdc = kerberos.example.com:88
admin_server = kerberos.example.com:749
default_domain = example.com
}
RAINBIRD.NET = {
kdc = 192.168.1.241:88(
域服务器
)
kdc = 192.168.1.241
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
rainbird.net = RAINBIRD.NET
.rainbird.net = RAINBIRD.NET
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
/etc/samba/smb.conf
workgroup = RAINBIRD//
域名
password server = 192.168.1.241//
域服务器
realm = RAINBIRD.NET
security = ads//
必须启用
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/bash
winbind use default domain = false
(
改成
true)
winbind offline logon = false
(
改成
true)
template homedir = /home/%U
winbind separator = /
winbind enum users = Yes
winbind enum groups = Yes
红色部分就是工具自动修改的了,但是
smb.conf
修改的不彻底,还不能满足我们的要求,怎么办呢?手动把蓝色部分加上,并把那两个
false
改成
ture,
然后设置
samba
的开机自动启动
chkconfig smb on,service smb on启动服务,然后就是手工把linux加入到windows了
[root@filesrv ~]# net ads join -U administrator@RAINBIRD.NET
administrator@RAINBIRD.NET’s password:
The workgroup in /etc/samba/smb.conf does not match the short
domain name obtained from the server.
Using the name [RAINBIRD] from the server.
You should set “workgroup = RAINBIRD” in /etc/samba/smb.conf.
Using short domain name — RAINBIRD
Joined ‘FILESRV’ to realm ‘RAINBIRD.NET’
提示“Joined”哟,不是这个提示就是有问题,再仔细检查。
OK,
重启
linux
,这时候用一个域用户登陆
linux
如果提示用户或密码验证失败,说明你重启之前的东西没配置对。仔细检查一下哪里不对呢?
![](http://img1.51cto.com/attachment/200909/200909011251737240265.jpg)
如果提示如下,那么恭喜你,可以继续下一个话题了。
![](http://img1.51cto.com/attachment/200909/200909011251737258218.jpg)
3.
自动创建用户目录
.
用到的文件
pam_mkhomedir.so
在
/etc/pam.d/sysconf-auth
文件中的
sesson
部分添加一行
session required pam_mkhomedir.so silent skel=/etc/skel umask=0077
silent
不打印创建目录信息
skel
告诉
pam_mkhomedir.so
拷贝
/etc/skel
里的文件到新创建的目录里
.
umask
是创建的目录的权限
创建哪个目录是在
smb.conf
里的
template homedir
定义的
如图
:
![](http://img1.51cto.com/attachment/200909/200909011251737274625.jpg)
保存退出
,
重启一下
X-window
。再次用域用户登陆,是不是成功看到了久违的
linux
桌面呢
?
![](http://img1.51cto.com/attachment/200909/200909011251737292265.jpg)
Ok,
到此为止
,linux
加入
windows
的故事就讲完了。而
samba
服务器通过
ad
域认证并实现每个用户
500M
的共享空间,且当用户登陆
windows
域的时候自动挂载已经成型,近期放出,敬请期待。
Rainbird2大侠出品了一篇
“Linux加入windows域之完美方案”
,虽然网上流传了很多加入liunx到windows的文章,比如, “梦想开始的地方”的“使用Samba将linux主机加入AD域”,该帖子即详细介绍了加入的方法和具体步骤,见原文:
http://www.cnblogs.com/lizl/articles/852846.html#891920
, 但基于CentOS的图形化界面,Raidbird2的方法相对简单,容易,但其实在安装CentOS5.3的时候,要求创建新账号的右下,已经存在一个“使用网络账号登录”的按钮,点击它即可进行纯GUI
“Linux加入windows域之完美方案”
,虽然网上流传了很多加入liunx到windows的文章,比如, “梦想开始的地方”的“使用Samba将linux主机加入AD域”,该帖子即详细介绍了加入的方法和具体步骤,见原文:
http://www.cnblogs.com/lizl/articles/852846.html#891920
, 但基于CentOS的图形化界面,Raidbird2的方法相对简单,容易,但其实在安装CentOS5.3的时候,要求创建新账号的右下,已经存在一个“使用网络账号登录”的按钮,点击它即可进行纯GUI
界面的操作,比Raidbird2文中所描述的更为漂亮。但毋庸置疑,Raidbird2的该文依然可以用帮助大多数想实现这种方法的朋友。
不过,纵观所有的文章,仅仅都是提到了如何加入linux主机到windows域,却没有提及任何相关如何对域账号,或使用域账号对linux主机进行管理的文章。 在下这里抛砖引玉,简单提一下需求和解决办法。
首先,我们的构想环境是30台linux主机,均已安装要求加入到 windows域。由于地理位置的分布和权限分派的要求,所有计算机管理员均为admin,但非root,即他们均可以使用sudo为宜。30台 linux主机如果都使用本地计算机账号,那么对于密码的维护将是一个噩梦的开始,所以,在这里我们使用AD域账号来进行管理和验证。
-
问题:多台linux主机管理员账号混乱,密码重设繁琐 (当然高手可以用shell来实现,这里暂且不提)
-
要求:使用域账号,作为本地管理员可以使用sudo操作
-
方法:
-
创建一本地组(你也可以使用已存在的组)
-
group add groupname
-
修改sudo列表
-
visudo
-
在root ALL=(ALL) ALL 下添加一行
-
%groupname ALL=(ALL) ALL
-
保存退出
-
修改group文件
-
vim /etc/group
-
groupname:x:501:DOMAIN\username 或者域组名
-
这里DOMAIN必须大写
-
如果已经用该域账号登录了,注销即可。
-
该方法成功运行在CentOS5.3系统。
由于在下水平问题,估计文章有所疏漏,还请大侠们补正,谢谢。
本文出自 “
狼牙
” 博客,请务必保留此出处
http://wolfteeth.blog.51cto.com/923253/199692