1、Linux加入Windows域之完整操作步骤 关于linux加入windows域,网上资料不少,但是按着网上的说法做大多不成功,甚至很多人估计都不知道自己在说什么,最后一个net ads join就认为已经成功加入到域了,可是然后呢?作为域内的一个成员,普通的机器要可以提供域内的用户登陆;作为samba服务要把共享加入到目录中,这样才起到加入域的作用嘛。笔者经过反复实验,终于把linux加入windows域一些细节记录下来,不敢独享,特拿出。 笔者用的linux为centos5.3。ad域为win2k3 sp2。域为:R Win2k3: Name:ad1 Ip:192.168.1.2
2、41 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
3、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可以这样安装 [r
4、oot@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工具 认证配置 选择: “use winbind” “use kerberos” “use winbind authertication” 删除admin server 其余的改成真实情况 R
5、ealm为域名,KDC为域服务器的ip 配置winbind Domain为你的域的,左面第一个”.”前面的东东 选择”join domain”,提示是否先保存配置信息,肯定是yes了。 嘿嘿,看到这个画面是不是想到了xp机器加入到域的情景?没错就是那个!输入ad域的管理员密码吧! 不出意外的话,你就到达了最后一个界面,肯定ok,然后退出了。 一般来说,只要两台机器的时间上下不差五分钟,且项都配置正确的话,你就会看到下面这个图片。看到这个图片说明你的linux成功加入到ad域啦! OK,用图形的好处就是方便快捷,但是这样只适合rh系统。别的linux系统咋办
6、呢?别急。这个工具其实就是编辑以下三个配置文件: /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 [
7、libdefaults] default_realm = RAINBIRD.NET(默认的域名) dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h forwardable = yes [realms] EXAMPLE.COM = { kdc = :88 admin_server = :749 default_domain = } RAINBIRD.NET = { kdc = 192.168.1.241:88(域服务器) kdc
8、 192.168.1.241 } [domain_realm] = EXAMPLE.COM = EXAMPLE.COM = RAINBIRD.NET = RAINBIRD.NET [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false } /etc/samba/smb.conf workgroup = R
9、AINBIRD//域名 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) templa
10、te 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了。 OK,重启linux,这时候用一个域用户登陆linux如果提示用户或密码验证失
11、败,说明你重启之前的东西没配置对。仔细检查一下哪里不对呢? 如果提示如下,那么恭喜你,可以继续下一个话题了 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定义的 如图: 保存退出,重启一下X-window。再次用域用户登陆,是不是成功看到了久违的linux桌面呢 Ok,到此为止,linux加入windows域的故事就讲完了。






