Linux 加入windows域同步用户名
测试环境
●域环境基于windows 2003 AD
●Linux下有完整的域名解析,能够解析到ad域的netbios名(短名)
●Linux下有本机(linux主机)的解析,可以在dns中写A记录,也可以在/etc/hosts中填
写
●Linux必须安装winbind服务(包含在samba-common中)
实验中使用的域名:
DC主机名:
DC上有DNS和DHCP服务
DHCP指定了scope option中的DNS和Router
DC的ip地址为1.1.1.254/24
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
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm =
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
= {
kdc = 1.1.1.254:88
kdc = 1.1.1.254
}
[domain_realm]
=
=
[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 =
security = ads
idmap 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
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 新配置
shadow: files winbind 新配置
group: files winbind 新配置
加入wind ows域
键入Kinit administrator@
提示输入域管理员的密码
如果前面动作都成功的话,这里可以正常加入域
能在dc中的computer容器中看到当前这台linux服务器。
重启服务器,用getent passwd查看用户同步是否成功
尝试su – test/testuser登陆(域用户用户名大小写不敏感)
经测试在AD中新增用户,linux可以自动同步到新建的用户,但是可能要等个几分钟
修改pam.d
可以看到在smb.conf中我们定义了template homedir = /home/%U这样一行,所以所有域用户的家目录会在/home/<username>中
但是这个目录默认是不存在的
所以要在pam中增加一条来自动创建家目录。
修改/etc/pam.d/system-auth-ac,如下。
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.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 [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_first_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。