1、Linux 加入windows域同步用户名 测试环境 l 域环境基于windows 2003 AD l Linux下有完整的域名解析,能够解析到ad域的netbios名(短名) l Linux下有本机(linux主机)的解析,可以在dns中写A记录,也可以在/etc/hosts中填写 l Linux必须安装winbind服务(包含在samba-common中) 实验中使用的域名:TEST.COM DC主机名:AD.TEST.COM DC上有DNS和DHCP服务 DHCP指定了scope option中的DNS和Router DC的ip地址为1.1.1.254/24
2、 Linux使用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 红色部分做修改,其他部分不变,此处根据以上环境修改,实际实施请根据项目环境替换正确的值,端口号不变 [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log
3、admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = TEST.COM dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h forwardable = yes [realms] TEST.COM = { kdc = 1.1.1.254:88 kdc = 1.1.1.254 } [domain_realm] = TEST.COM = TEST.COM
4、 [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false } 修改/etc/samba/smb.conf 在[global]区块内 修改为 workgroup = TEST password server = 1.1.1.254 realm = TEST.COM security = ads idmap
5、uid = 16777216-33554431 idmap gid = 16777216-33554431 template shell = /bin/bash winbind use default domain = false winbind offline logon = false template homedir = /home/%U winbind separator = / winbind enum users = Yes winbind enum groups = Yes
6、 server string = Samba Server Version %v netbios name = linux encrypt passwords = yes 修改nsswitch 修改本地的/etc/nsswitch文件 找到passwd,shadow,group 修改为 #passwd: db files nisplus nis 原配置 #shadow: db files nisplus nis原配置 #group: db files nisplus nis原配置 passwd: files winbind 新配置
7、shadow: files winbind 新配置 group: files winbind 新配置 加入windows域 键入Kinit administrator@TEST.COM 提示输入域管理员的密码 如果前面动作都成功的话,这里可以正常加入域 能在dc中的computer容器中看到当前这台linux服务器。 重启服务器,用getent passwd查看用户同步是否成功 尝试su – test/testuser登陆(域用户用户名大小写不敏感) 经测试在AD中新增用户,linux可以自动同步到新建的用户,但是可能要等个几分钟 修改
8、pam.d
可以看到在smb.conf中我们定义了template homedir = /home/%U这样一行,所以所有域用户的家目录会在/home/
9、so uid >= 500 quiet auth sufficient pam_krb5.so use_first_pass auth sufficient pam_winbind.so use_first_pass auth required pam_deny.so account required pam_unix.so broken_shadow account sufficient pam_succeed_if.so uid < 500 quiet account
10、[default=bad success=ok user_unknown=ignore] pam_krb5.so account [default=bad success=ok user_unknown=ignore] pam_winbind.so account required pam_permit.so session required pam_mkhomedir.so silent skel=/etc/skel umask=0077 password requisite pam_cracklib.so try_fir
11、st_pass retry=3 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok password sufficient pam_krb5.so use_authtok password sufficient pam_winbind.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_krb5.so






