1、Linux 加入 windows 域同步用户名测试环境 域环境基于 windows 2003 AD Linux 下有完整的域名解析,能够解析到 ad 域的 netbios 名(短名) Linux 下有本机(linux 主机)的解析,可以在 dns 中写 A 记录,也可以在/etc/hosts 中填写 Linux 必须安装 winbind 服务(包含在 samba-common 中)实验中使用的域名:TEST.COMDC 主机名:AD.TEST.COMDC 上有 DNS 和 DHCP 服务DHCP 指定了 scope option 中的 DNS 和 RouterDC 的 ip 地址为 1.1.1
2、.254/24Linux 使用 Redhat 5.7 X64安装 samba-common 包Linux 服务器的 ip 地址为 1.1.1.1/24 dns 指向 1.1.1.254 本地的 /etc/hosts 文件如下/etc/resolv.conf 配置为修改 kerberos 指向 DC修改本地的/etc/krb5.conf红色部分做修改,其他部分不变,此处根据以上环境修改,实际实施请根据项目环境替换正确的值,端口号不变loggingdefault = FILE:/var/log/krb5libs.logkdc = FILE:/var/log/krb5kdc.logadmin_ser
3、ver = FILE:/var/log/kadmind.loglibdefaultsdefault_realm = TEST.COMdns_lookup_realm = falsedns_lookup_kdc = falseticket_lifetime = 24hforwardable = yesrealmsTEST.COM = kdc = 1.1.1.254:88kdc = 1.1.1.254domain_ = TEST.COM = TEST.COMappdefaultspam = debug = falseticket_lifetime = 36000renew_lifetime = 3
4、6000forwardable = truekrb4_convert = false修改/etc/samba/smb.conf在global区块内修改为workgroup = TESTpassword server = 1.1.1.254realm = TEST.COMsecurity = adsidmap uid = 16777216-33554431idmap gid = 16777216-33554431template shell = /bin/bashwinbind use default domain = falsewinbind offline logon = falsetemp
5、late homedir = /home/%Uwinbind separator = /winbind enum users = Yeswinbind enum groups = Yesserver string = Samba Server Version %vnetbios name = linuxencrypt passwords = yes修改 nsswitch修改本地的/etc/nsswitch 文件找到 passwd,shadow,group修改为#passwd: db files nisplus nis 原配置#shadow: db files nisplus nis 原配置#g
6、roup: db files nisplus nis 原配置passwd: files winbind 新配置shadow: files winbind 新配置group: files winbind 新配置加入 windows 域键入 Kinit administratorTEST.COM提示输入域管理员的密码如果前面动作都成功的话,这里可以正常加入域能在 dc 中的 computer 容器中看到当前这台 linux 服务器。重启服务器,用 getent passwd 查看用户同步是否成功尝试 su test/testuser 登陆( 域用户用户名大小写不敏感)经测试在 AD 中新增用户,l
7、inux 可以自动同步到新建的用户,但是可能要等个几分钟修改 pam.d可以看到在 smb.conf 中我们定义了 template homedir = /home/%U 这样一行,所以所有域用户的家目录会在/home/ 中但是这个目录默认是不存在的所以要在 pam 中增加一条来自动创建家目录。修改/etc/pam.d/system-auth-ac,如下。auth required pam_env.soauth sufficient pam_unix.so nullok try_first_passauth requisite pam_succeed_if.so uid = 500 quiet
8、auth sufficient pam_krb5.so use_first_passauth sufficient pam_winbind.so use_first_passauth required pam_deny.soaccount required pam_unix.so broken_shadowaccount sufficient pam_succeed_if.so uid 500 quietaccount default=bad success=ok user_unknown=ignore pam_krb5.soaccount default=bad success=ok use
9、r_unknown=ignore pam_winbind.soaccount required pam_permit.sosession required pam_mkhomedir.so silent skel=/etc/skel umask=0077password requisite pam_cracklib.so try_first_pass retry=3password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtokpassword sufficient pam_krb5.so use_authtokpassword sufficient pam_winbind.so use_authtokpassword required pam_deny.sosession optional pam_keyinit.so revokesession required pam_limits.sosession success=1 default=ignore pam_succeed_if.so service in crond quiet use_uidsession required pam_unix.sosession optional pam_krb5.so