1、linux 加入 windows 域之完美方案 2009-09-01 00:49:09标签:linux windows 域环境 域 linux 加入 windows 域之完美方案 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http:/ 笔者这几天在研究 samba 服务通过 ad 域进行用户验证。在查资料的过程中发现。关于 linux 加入windows 域,网上资料不少,但是按着网上的说法做大多不成功,甚至很多人估计都不知道自己在说什么,最后一个 net ads join 就认为已经成功加入到域了,可是然后呢?作为域内的一个成员,
2、普通的机器要可以提供域内的用户登陆;作为 samba 服务要把共享加入到目录中,这样才起到加入域的作用嘛。笔者经过反复实验,终于把 linux 加入到 windows 域一些细节记录下来,不敢独享,特拿出。笔者用的 linux 为 centos5.3。ad 域为 win2k3 sp2。域为:RWin2k3:Name:ad1Ip:192.168.1.241Dns:192.168.1.241Centos5.3:Name:FilesrvIp:192.168.1.246Dns:192.168.1.241Ok,lets go!1.samba 服务器软件需求 krb5-workstation-1.2.7-
3、19 pam_krb5-1.70-1 krb5-devel-1.2.7-19 krb5-libs-1.2.7-19 samba-3.0.5-2 rootfilesrv CentOS# rpm -qa|grep krb5krb5-auth-dialog-0.7-1krb5-libs-1.6.1-25.el5krb5-devel-1.6.1-25.el5pam_krb5-2.2.14-1krb5-workstation-1.6.1-25.el5rootfilesrv CentOS# rpm -qa|grep sambasamba-swat-3.0.28-0.el5.8samba-common-3.
4、0.28-0.el5.8samba-client-3.0.28-0.el5.8samba-3.0.28-0.el5.8如果 centos 在安装的时候没有取消默认选中的”Base”,则 krb5 的包是默认全部安装如果没有选择安装 samba 可以这样安装rootfilesrv CentOS# rpm -ivh xinetd-2.3.14-10.el5.i386.rpmrootfilesrv CentOS# rpm -ivh -aid samba*.rpm2.配置 kerberos 和 samba因为笔者用的系统为 centos 所以为保证一次成功的准确率,这里就使用字符界面下的图形工具来配置
5、了。运行 setup 工具认证配置选择:“use winbind”“use kerberos”“use winbind authertication”删除 admin server 其余的改成真实情况Realm 为域名,KDC 为域服务器的 ip配置 winbindDomain 为你的域的,左面第一个”.”前面的东东选择”join domain”,提示是否先保存配置信息,肯定是 yes 了。嘿嘿,看到这个画面是不是想到了 xp 机器加入到域的情景?没错就是那个!输入 ad 域的管理员密码吧 不出意外的话,你就到达了最后一个界面,肯定 ok,然后退出了。一般来说,只要两台机器的时间上下不差五分钟
6、,且项都配置正确的话,你就会看到下面这个图片。看到这个图片说明你的 linux 成功加入到 ad 域啦!OK,用图形的好处就是方便快捷,但是这样只适合 rh 系统。别的 linux 系统咋办呢?别急。这个工具其实就是编辑以下三个配置文件:/etc/nsswitch.confpasswd: files winbind(就是先读 files 然后再通过 winbind 认证)shadow: files winbindgroup: files winbind/etc/krb5.confloggingdefault = FILE:/var/log/krb5libs.logkdc = FILE:/var
7、/log/krb5kdc.logadmin_server = FILE:/var/log/kadmind.loglibdefaultsdefault_realm = RAINBIRD.NET(默认的域名)dns_lookup_realm = falsedns_lookup_kdc = falseticket_lifetime = 24hforwardable = yesrealmsEXAMPLE.COM = kdc = :88admin_server = :749default_domain = RAINBIRD.NET = kdc = 192.168.1.241:88(域服务器)kdc =
8、192.168.1.241domain_ = EXAMPLE.COM = EXAMPLE.COM = RAINBIRD.NET = RAINBIRD.NETappdefaultspam = debug = falseticket_lifetime = 36000renew_lifetime = 36000forwardable = truekrb4_convert = false/etc/samba/smb.confworkgroup = RAINBIRD/域名password server = 192.168.1.241/域服务器realm = RAINBIRD.NETsecurity =
9、ads/必须启用idmap uid = 16777216-33554431idmap gid = 16777216-33554431template shell = /bin/bashwinbind use default domain = false (改成 true)winbind offline logon = false(改成 true)template homedir = /home/%Uwinbind separator = /winbind enum users = Yeswinbind enum groups = Yes红色部分就是工具自动修改的了,但是 smb.conf 修改
10、的不彻底,还不能满足我们的要求,怎么办呢?手动把蓝色部分加上,并把那两个 false 改成 ture,然后设置 samba 的开机自动启动 chkconfig smb on,service smb on 启动服务,然后就是手工把 linux 加入到 windows 了rootfilesrv # net ads join -U administratorRAINBIRD.NETadministratorRAINBIRD.NETs password:The workgroup in /etc/samba/smb.conf does not match the shortdomain name ob
11、tained from the server.Using the name RAINBIRD from the server.You should set “workgroup = RAINBIRD“ in /etc/samba/smb.conf.Using short domain name - RAINBIRDJoined FILESRV to realm RAINBIRD.NET提示“Joined”哟,不是这个提示就是有问题,再仔细检查。OK,重启 linux,这时候用一个域用户登陆 linux 如果提示用户或密码验证失败,说明你重启之前的东西没配置对。仔细检查一下哪里不对呢?如果提示如
12、下,那么恭喜你,可以继续下一个话题了。3.自动创建用户目录.用到的文件 pam_mkhomedir.so在/etc/pam.d/sysconf-auth 文件中的 sesson 部分添加一行session required pam_mkhomedir.so silent skel=/etc/skel umask=0077silent 不打印创建目录信息skel 告诉 pam_mkhomedir.so 拷贝/etc/skel 里的文件到新创建的目录里 .umask 是创建的目录的权限创建哪个目录是在 smb.conf 里的 template homedir 定义的如图:保存退出,重启一下 X-window。再次用域用户登陆,是不是成功看到了久违的 linux 桌面呢?Ok,到此为止,linux 加入 windows 的故事就讲完了。而 samba 服务器通过 ad 域认证并实现每个用户 500M 的共享空间,且当用户登陆 windows 域的时候自动挂载已经成型,近期放出,敬请期待。相关文章:Samba 通过 ad 域进行认证并限制空间大小本文出自 “rainbird” 博客,请务必保留此出处 http:/