当前位置

15.3 Samba和Windows互通

主标签

如何使用samba3来做为域的登录服务器?
1.samba的配置
全局配置参数
[global]
设置工作组或者说是域名。
workgroup = smbgroup
网络上看到的计算机的名称(samba)。
netbios name = linux01
服务器描述﹐%v显示Samba版本。
server string = Samba Server %v
中文显示设置,默认文件中此三项是没有的,需自行添加。
display charset = GBK
unix charset = GBK
dos charset = cp936
设置samba服务器使用的认证级别。默认为USER﹐有四个选项﹕User,Share,Server和Domain.
Security = User
匿名﹑名称﹑密码都不正确不准登录服务器。即任何非法用户名登录均被视为gues用户。
map to guest = Bad User
是否为时间服务器。
time server = Yes
设置连接被视为无效而断开前﹐未激活状态的时间(MIN)﹐防止资源被无效连接耗费。
deadtime = 5
网络协议选项﹐注意这里不要更改﹐否则会影响网络速度并产生一些网络问题。
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
用户成功登录时在netlogon共享中运行的批处理文件或者windows命令文件﹐
注意﹕这一项很重要﹐还有就是一定要配合下面的[netlogon]共享才能配置出你的PDC﹐
%U为自动匹配登录用户的名称。
logon script = %U.bat
在服务器上保存Windows用户登录时的配置文件路径﹐%L为Samba匹配服务器名称。
logon path = \\%L\profile\%U
设定登录时主目录的本地路径。
logon drive = H:
Samba是否接受所在组用户以域登录。
domain logons = Yes
如果要把samba设置为域服务器﹐浏览器的OS级别一定要高于Windows。OS级别﹕windows95为1﹐98为16﹐2000为32.
os level = 65
是否设置samba试图成为主浏览器。
domain master = Yes
是否设置samba为WINS服务器。
wins support = Yes
超级用户。
admin users = root
设置新文件权限。
create mask = 0740
建立新文件时强制权限限制。
force create mode = 0740
允许用户在NT\2000下改变权限。
security mask = 0740
force security mode = 0740
创建新目录时的目录权限设置
directory mask = 0750
force directory mode = 0750
directory security mask = 0750
force directory security mode = 0750

Windows工作方式﹐只要文件被修改﹐其时间戳将随时更新。
dos filetimes = Yes
Samba对文件生成时间作取整处理﹐计为下1秒﹐这也是windows工作方式。
dos filetime resolution = Yes

[netlogon]
comment = Network Logon Service
path = /home/netlogon
write list = root
guest ok = Yes
share modes = No
用户配置文件存放目录 。
[Profile]
path = /home/profiles
read only = No
create mask = 0770
force create mode = 0770
security mask = 0770
force security mode = 0770
directory mask = 0770
force directory mode = 0770
directory security mask = 0770
force directory security mode = 0770
browseable = No
以上只是列出了相关的一些设置,其他设置保持原样即可。

2.系统配置
在配置晚Smb.conf之后,你还需要配置相关登录目录及文件。首先手动在/home下建立目录﹕
profiles,访问权限为0770,并创建一个组﹐例如share,profiles目录即属于该组。用来存放Windows用户的配置文件。 再创建netlogon目录,netlogon的访问权限为1750﹐这里加上了sticky选项﹐不允许其它用户删除目录里的文件﹐只有超级用户或者建立者才可以﹐注意sticky选项只对目录起作用。组为share。
下面建立/etc/samba下面的smbpasswd文件﹕

# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

然后要在netlogon目录里建立windows用户的登录脚本﹐比如批处理文件﹐需要注意的是﹐一定要在Windows下面建立﹐因为如果在Linux下建立﹐那么Windows就不会执行Linux的文件。
比如有个帐户hew,批处理文件hew.bat可以这样﹕

@net time \\SambaServer /set /yes
@net use H: \\SambaServer\hew -y
@regedit -s \\SambaServer\netlogon\*.reg

注意保存后的批处理文件的权限,一定要有执行权。

配置Window$端以便他能登录Samb
其中-a是添加﹐-m是机器信任帐号。这样依据win2k$的Linux帐号创建了一个NT域的机器信任帐号win2k.

然后通过系统特性==>网络标识,配置你的计算机将其加入samba域。

对于window$ xp/2003你还需要按以下内容创建一个WinXP_SignOrSeal.reg

Windows Registry Editor Version 5.00

;

; This registry key is needed for a Windows XP Client to join

; and logon to a Samba domain. Note: Samba 2.2.3a contained

; this key in a broken format which did nothing to the registry -

; however XP reported "registry key imported". If in doubt

; check the key by hand with regedit.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]

"requiresignorseal"=dword:00000000

你也可以在/usr/share/doc/samba-version/docs/Registry/WinXP_SignOrSeal.reg

找到该文件。

参考文档

http://samba.linuxforum.net/samba/docs/