概念理解:
1、kdc:可信任的密钥分发中心(KDC, Key Distribution Center)。
2、Winbind是Samba套件的功能之一。它允许Unix系统利用Windows NT的用户帐号信息。winbind验证器是Samba winbindd服务进程的客户端。在使用该验证器之前,必须安装Samba和运行winbindd 服务。# /etc/init.d/winbind start
3、smb.conf:samba主配置文件
4、/etc/krb5.conf:Kerberos用于身份认证的配置文件(The krb5.conf file contains Kerberos configuration information, including the locations of KDCs and administration daemons for the Kerberos realms of interest, defaults for the current realm and for Kerberos applications, and mappings of host names onto Kerberos realms. This file must reside on all Kerberos clients.)
5、/etc/nsswitch.conf:用于控制Samba服务器Linux系统账户与Windows域账户交换的文件(nsswitch.conf是SUN公司开发的一种扩充(name services switch)
C 程序库里很多函数都需要配置以便能在本地环境正常工作, 习惯上是使用文件(例如`/etc/passwd') 来完成这一任务. 但别的名字服务, 如网络信息服务NIS, 还有域名服务DNS等, 逐渐通用起来, 并且被加入了C 程序库里, 而它们使用的是固定的搜索顺序.在有NYS 支持的Linux libc5以及GNU C Library 2.x (libc.so.6)里, 依靠一个更清晰完整的方案来解决该问题. 该方案模仿了SunMicrosystems公司在Solaris 2 的C 程序库里的方法, 也沿袭了它们的命名, 称为 "名字服务开关(NSS)".

==================================================================
笔者用的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命令,打开setup工具:
 
删除admin server 其余的改成真实情况
Realm为域名,KDC为域服务器的ip
 
配置winbind
Domain为你的域的,左面第一个”.”前面的东东
 
选择”join domain”,提示是否先保存配置信息,肯定是yes了。
 
输入域管理员密码,下一步点OK即可。
一般来说,只要两台机器的时间上下不差五分钟,且项都配置正确的话,你就会看到下面这个图片。看到这个图片说明你的linux成功加入到ad域啦!
 
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如果提示用户或密码验证失败,说明你重启之前的东西没配置对。仔细检查一下哪里不对呢?
 
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加入windows域之完美方案(转载)的更多相关文章

  1. linux加入windows域之完美方案

    运行setup工具 认证配置 选择: “use winbind” “use kerberos” “use winbind authertication” 改为: 删除admin server 其余的改 ...

  2. linux加入Windows域-------本人生产环境上线所用

    为什么说要linux加域呢!    因为之前在公司是做vmware的,然后呢vmware的horizon桌面云虚拟化都是通过域来管理的,开始使用的都是Windows桌面,后来开发的人员说要使用linu ...

  3. linux加入windows域

    http://www.redhat.com/rhecm/rest-rhecm/jcr/repository/collaboration/jcr:system/jcr:versionStorage/36 ...

  4. 将samba加入到windows域《转载》

    将samba加入到windows域 那什么是域呢? 一台Windows计算机,它要么隶属于工作组,要么隶属于域.所以说到域,我们就不得不提一下工作组,工作组是MS的概念,一般的普遍称谓是对等网. 工作 ...

  5. 【转载】LINUX 和 WINDOWS 内核的区别

    LINUX 和 WINDOWS 内核的区别 [声明:欢迎转载,转载请注明出自CU ACCESSORY http://linux.chinaunix.net/bbs/thread-1153868-1-1 ...

  6. Linux和Windows系统的远程桌面访问知识(转载)

    为新手讲解Linux和Windows系统的远程桌面访问知识   很多新手都是使用Linux和Windows双系统的,它们之间的远程桌面访问是如何连接的,我们就为新手讲解Linux和Windows系统的 ...

  7. [转载]【转】教你如何实现linux和Windows之间的文件共享,samba的安

    原文地址:[转]教你如何实现linux和Windows之间的文件共享,samba的安装与配置作者:铅笔小蜡 本人在虚拟机下装fedora13,已经实现.1. 首先检查os是否安装好了samba. [r ...

  8. 解决Linux与Windows压缩解压中文文件名乱码(转载)

    转自:http://crazyfeng.com/linux-windows-compress-chinese-filename.html 由于Linux与Windows编码问题,使用Zip Tar 压 ...

  9. wkhtmltopdf+itext实现html生成pdf文件的打印下载(适用于linux及windows)

    目中遇到个根据html转Java的功能,在java中我们itext可以快速的实现pdf打印下载的功能,在itext中我们一般有以下三中方式实现 配置pdf模板,通过Adobe Acrobat 来设置域 ...

随机推荐

  1. 【iOS开发之OC和JS互调】

    1.OC中调用JS代码 公司的移动端需要加载一个现有的网页,并且要在原网页要做一些小的调整,如将网页的标题改一下加载到手机的app上,此时就可以在app的oc代码中加入JS代码来实现.如下例子,我要加 ...

  2. .NET基础拾遗(7)多线程开发基础4

    一.多线程编程中的线程同步 1.C#中的lock关键字 lock关键字可能是我们在遇到线程同步的需求时最常用的方式,但lock只是一个语法糖,为什么这么说呢,下面慢慢道来. (1)lock的等效代码其 ...

  3. vs开发常用快捷键

    Ctrl+K+D:快速对齐代码///按D的时候K快速弹起 如果出现语法错误则无法对齐Ctrl+Z:撤销Ctrl+S:保存Ctrl+J:快速弹出智能提示Shift+End.Shift+Home//快速选 ...

  4. MongoDB-C# Driver账户密码登录问题

    MongoDb在3.0之后添加了SCRAM-SHA-1,用户验证模式.添加的用户,默认登录协议也是这个. 在登陆的时候就要选择使用这种方式登录.有的gui客户端的登录验证方式还是MONGODB-CR. ...

  5. 树形dp hdu1561

    有的堡垒攻克需要攻克另一个堡垒,形成一个森林,最多攻克m个堡垒,求获得宝物的最大价值. 1,以0做根将森林形成树: 2,用背包计算当前节点下需要攻克k个堡垒能获得的宝物最大价值,但是注意同一个根节点的 ...

  6. 一个小玩具:NDK编译SDL的例子

    NDK编译SDL 准备: 硬件 一台电脑,实验在Lenovo T430上 一个Android设备,实验在 三星S3/A7 编译环境: Ubuntu 14.04 (ant\java等命令必须支持) 工具 ...

  7. Codeforces Round #318(Div 1) 573A, 573B,573C

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud 这场的前两题完全是手速题...A题写了7分钟,交的时候已经500+了,好在B题出的 ...

  8. C++ Primer 5th 第6章 函数

    正如第一章所说:C++的函数是一个能够完成一个功能的模块或者说是一段命名了的代码块. 如下图所示,函数可以重载,是一段实现某些功能命名了的代码. 一个完整的函数的构成有四部分: 1.返回类型 2.函数 ...

  9. jquery节点查询

    jQuery.parent(expr)           //找父元素 jQuery.parents(expr)          //找到所有祖先元素,不限于父元素 jQuery.children ...

  10. Holes in the text Add problem to Todo list Problem code: HOLES

    import sys def count_holes(letter): hole_2 = ['A', 'D', 'O', 'P', 'Q', 'R'] if letter == 'B': return ...