Linux加入Windows域之完整操作步骤

运维 系统运维
本文使用CentOS 5.3和win2k3 sp2做为范例,详细记录了将Linux加入Windows域的操作步骤。做为域内的成员,加域之后要提供域内的用户登录;做为Samba服务器,则要把共享加入目录才真正实现了加入域的作用。

关于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

#p#

2.配置kerberos和samba

因为笔者用的系统为centos所以为保证一次成功的准确率,这里就使用字符界面下的图形工具来配置了。

运行setup工具

认证配置

选择:

“use winbind”

“use kerberos”

“use winbind authertication”

删除admin server 其余的改成真实情况

Realm为域名,KDC为域服务器的ip

配置winbind

Domain为你的域的,左面第一个”.”前面的东东

选择”join domain”,提示是否先保存配置信息,肯定是yes了。

嘿嘿,看到这个画面是不是想到了xp机器加入到域的情景?没错就是那个!输入ad域的管理员密码吧!

不出意外的话,你就到达了最后一个界面,肯定ok,然后退出了。

一般来说,只要两台机器的时间上下不差五分钟,且项都配置正确的话,你就会看到下面这个图片。看到这个图片说明你的linux成功加入到ad域啦!

#p#

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了。

OK,重启linux,这时候用一个域用户登陆linux如果提示用户或密码验证失败,说明你重启之前的东西没配置对。仔细检查一下哪里不对呢?

如果提示如下,那么恭喜你,可以继续下一个话题了。

#p#

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域的故事就讲完了。

【编辑推荐】

  1. inotify监控Linux文件系统的必备利器
  2. 六大Linux虚拟化技术全面讲解
  3. Linux管理员不可不知的五大命令+工具
责任编辑:yangsai 来源: 51CTO博客
相关推荐

2016-08-22 22:12:39

LinuxWindowsAD域

2016-08-23 09:17:04

LinuxWindowsAD

2019-08-28 09:00:45

Windows 10Windows

2019-12-13 11:12:56

Windows 7电脑Windows

2021-02-21 17:56:55

LinuxNodeJS

2011-08-11 10:38:23

域功能

2010-03-26 18:51:51

Python作用域

2011-08-03 11:11:01

本地组脚本

2023-02-06 00:26:02

2020-09-22 12:22:32

Windows TerWindowsLinux

2009-12-04 13:42:38

Windows 7操作

2024-08-12 16:28:37

LinuxSSH密钥

2010-03-18 17:21:52

Linux命令

2010-03-18 17:13:52

Linux命令

2016-10-17 08:49:15

WindowsLinuxArch Linux

2010-03-04 14:34:50

Linux操作系统

2010-05-17 10:43:03

Windows Ser实战

2021-11-12 23:44:28

Windows 10Windows微软

2021-10-25 22:18:52

Windows 10Windows微软

2021-08-12 23:10:41

Windows 7Windows微软
点赞
收藏

51CTO技术栈公众号