• linux加入windows域之完美方案(转载)


    概念理解:
    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。再次用域用户登陆。
  • 相关阅读:
    用例的粒度问题
    REST和RPC最大区别
    成功的结对编程要点
    我认为技术经理应该做的事儿
    敏捷测试实践
    DDD-围绕业务逻辑编程
    依赖反转原则
    Kafka和Rabbitmq的最大区别
    Cassandra快速两次写入导致顺序不对的问题
    DotNetBar之SupergridControl显示图片,行距自动调整
  • 原文地址:https://www.cnblogs.com/rusking/p/3965261.html
Copyright © 2020-2023  润新知