本文介绍如何在Linux上搭建Samba PDC(俗称:Samba域),然后使用Windows Client加入Samba域,实现用户数据统一管理,漫游用户配置文件。
一、安装Samba服务
yum -y install samba samba-common samba-client samba-swat
二、配置Samba hosts列表
需要在下面文件中添加Samba PDC本机的IP-域名信息,域客户机的IP-域名信息即Windows Client的IP和机器名
如:

vim /etc/samba/lmhosts
文件默认有一行127.0.0.1 localhost,不要修改它,在它下面添加:
192.168.10.127 sambahouse #注意此处填写的是smb.conf中的workgroup参数值,也就是Samba PDC的域名
192.168.10.128 win7 #此处填写的是Windows Client的机器名
192.168.10.129 win7-1 #此处填写的是Windows Client的机器名
然后保存退出,在/etc/hosts下也添加以上信息
vim /etc/samba/hosts
原来的内容依旧不要修改,在下面一行添加如下内容:
192.168.10.127 sambahouse #注意此处填写的是smb.conf中的workgroup参数值,也就是Samba PDC的域名
192.168.10.128 win7 #此处填写的是Windows Client的机器名
192.168.10.129 win7-1 #此处填写的是Windows Client的机器名
三、修改Samba配置文件smb.conf
vim /etc/samba/smb.conf
修改内容如下(也可以将原先的配置文件重命名smb.conf.bak,然后新建一个smb.conf,添加以下内容):
[global]
workgroup = sambahouse #此处填写Samba域的域名
netbios name = sambapdc
server string = This is vbird's samba server
unix charset = utf8
display charset = utf8
dos charset = cp950
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
printcap name = cups
printing = cups
# 以下内容与配置成域服务器相关性大
preferred master = yes
domain master = yes
local master = yes
wins support = yes
# 作业系统(OS)等级越高才能称为主网域的域控,一般NT为32,所以我们这里设置高一点,但不可超过 255
os level = 100
# 底下则是设定是否能利用PDC进行登入,且登入需要进行哪些操作
domain logons = yes
logon drive = K: # 登入后家目录挂载成 Windows哪一个磁盘符
logon script = startup.bat # 每个使用者登录后执行的脚本
time server = yes # 自动调整Windows与Samba PDC之间的时间
admin users = root # 设定PDC的管理员帐号
logon path = \\%N\%U\profile
logon home = \\%N\%U # 登录用户的家目录
# 這個在指定登入者能夠進行的工作,裡面主要是具有許多執行程式:
[netlogon] # 与前面的 logon script 有关
comment = Network Logon Service
path = /winhome/netlogon # 用户的home目录,可以自定义创建
writable = no
write list = root
follow symlinks = yes
guest ok = yes
# 从此处开始保留原配置文件的内容即可
[homes]
comment = Home Directories
...保留原配置文件的内容到结尾处
%N 代表 PDC 服务器的位置, %U 则代表使用者的 Linux 家目录。因此最终你得要有 ~someone/profile 的目录才可以。
可以执行testparm测试配置文件是否有误:
testparm
然后重启服务
service smb restart
service nmb restart
chkconfig --level 123456 smb on
chkconfig --level 123456 nmb on
四、配置相关文件夹及文件
mkdir -p /winhome/netlogon
我们可以编辑一个bat,让Windows Client登入后执行该bat
vim /winhome/netlogon/startup.bat
添加以下内容(此处需要使用上述配置文件中的netbios name值):
net time \\sambadc /set /yes
net use K: /home
还需要将该bat转换格式:
yum -y install unix2dos
unix2dos /winhome/netlogon/startup.bat
cat -A /winhome/netlogon/startup.bat
就能看到文件内容中多了^M$字符,说明转换成功了
五、创建用户及机器
1. 创建用户
mkdir /etc/skel/profile
useradd -d /winhome/test1 test1
useradd -d /winhome/test2 test2
2. 在Samba中添加root和测试用户(samba添加用户的方式就是配置用户密码,注意此处密码可以与Linux相同也可不同,自己记清楚就行):
smbpasswd -a root
smbpasswd -a test1
smbpasswd -a test2
添加完成后,测试一下:
pdbedit -L
3. 建立机器账户(机器账户名需要在后面加上$符号,如win7$):
useradd -M -s /sbin/nologin -d /dev/null win7$
useradd -M -s /sbin/nologin -d /dev/null win7-1$
4. 在Samba中添加机器账户:
smbpasswd -a -m win7$
smbpasswd -a -m win7-1$
service smb restart
service nmb restart
六、配置Windows Client
需要修改Windows的注册表,如下:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters] “DomainCompatibilityMode”=dword:00000001
“DNSNameResolutionRequired”=dword:00000000
找到上述两个值,如果没有新建一个DWORD即可。修改完之后,修改机器名为刚才添加的机器名,然后重启机器。
重启完毕后,按照加入AD域的方式添加,域名需要填写smb.conf中的workgroup值,然后输入root的samb中的密码,即可添加成功。
网友评论