Samba 配置
samba 只有⼀个配置⽂件!
Samba 配置
摘要:
我将会尝试介绍给⼤家我们已经完成的⼯作:以Linux-samba服务器实现⼀个⽤作Windows⽹络的域控制器。
⽤户权限管理,将会被详细介绍。
本⽂以Debian GNU/Linux 2.2 为基础,因此默认的f⽂件可能和你的⽂件有⼀些⼩的出⼊。
下⾯⽤的的samba版本号是 2.0.72.0.7
Samba 安装
⾸先我们假定你知道⼀点⼉samba,⽽且它已经安装到你的rver上头了。
如果没有,快速安装的⽅法是:
Debian: apt-get install samba
RedHat(Mandrake): rpm -vih /mnt/cdrom/RedHat(Mandrake)/RPMS/samba*
配置⽂件: ⼀般设定
Samba使⽤单个的配置⽂件,这个⽂件⾥⾯你可以找到⼀些象这样的标记块: [global]
<f file>
[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
guest account = pcguest
log file = /usr/local/samba/log.%m
[tmp]
comment = Temporary file space
path = /tmp
read only = yes
public = yes
</file>
如果你⽤这个配置⽂件来运⾏samba,在你的局域⽹上头,那些windows机器就可以在他们的⽹络邻居⾥⾯发现⼀个叫做(你的linux机器的名字)的机器共享了⼀个temp⽬录出来,⽽且可以写⼊。
注意:⼀旦你更新了samba配置⽂件,你必须要通过使⽤ /etc/init.d/samba restart (debian)来重起你的samba。配置⽂件,“⾼级”参数⾸先我们来看看这些参数:[global]
netbios name:
你可以指定你samba服务器的netbios名字。通过windows机器的⽹络邻居可以看到这个名字。如果你
没有特别指定,Linux将会使⽤它⾃⼰的⽹络名作为netbios名。
invalid urs:不允许访问samba的⽤户名列表。⽐如“root”不应该被允许访问samba。
interfaces:如果你的Linux服务器有⼀张以上的⽹卡,同时你希望限制只有⼀个⽹络可⽤。
curity:
可⽤的安全模式。如果使⽤curity=ur将会要求每个⽤户都在GNU/Linux服务器上拥有⼀个账号
小孩哭声如果你不需要samba服务器管理⽤户,同时打算让所有⼈是⽤同样的共享资源,可以设为:curity=share。
workgroup:
你的linux服务器所在的⼯作组名字。
rver string:
你的Linux机器的简单描述(⼀些字符串)。
socket options:
⽤来调节samba服务器,并且让他快些的选项列表。视情况⽽定。
encrypt passwords:
必须使⽤加密⼝令么?必须了解到,(⼏乎)每个windows系统都会有不同的搞法!
wins support:
你的Linux服务器需要以wins⽅式⼯作?
os level:
OS级别指定哪个服务器将成为域控制器(domain master),局部控制器(local master),等等。
domain master:
指定samba作为主域服务器
local master:
指定samba作为local master rver
preferred master:
如果有其他服务器存在的话,Samba是否会是⾸选的⼀个?
domain logons:
Samba可以管理整个域的连接控制么?
logon script:
当此⽤户开始⼀次会话时运⾏哪个脚本?
logon path:
启动脚本⽂件在什么地⽅?
logon home:
在何处存放⽤户profile?
name resolve order:
以怎样的顺序使⽤资源顺序以查询⽹络内机器名字?
dns proxy:
Samba服务器是否同时也被⽤作DNS代理服务器?
prerve ca:
保持⽂件名的⼤⼩写情况。
short prerve ca:
保持⽂件名的⼤⼩写情况。
unix password sync:
是否需要同步Unix和windows的⼝令?
热爱大自然
passwd program:
⽤哪个程序更动⼝令。
幼儿园案例分析
passwd chat:
⽤什么“协议”更动⼝令。
max log size:
log⽂件的最⼤尺⼨。
Section [netlogon]
指定netlogon在哪⾥。
Section [profiles]
认识实习报告
⽤户profile⽂件部分。
Section [homes]
⽤户Home⽬录。Samba 变量
变量说明
客户端变量
%a 客户端体系:
⽐如: Win95, WfWg, WinNT, Samba ...
%I客户端IP地址
%m客户端NetBios名
%M客户端DNS名
⽤户变量
%g⽤户%u 主要组
%H⽤户%u home ⽬录
%u Unix 当前⽤户名
共享变量
%P当前共享的根⽬录
%S当前的共享名
服务器变量
%h Samba服务器的DNS名字
%L Samba服务器的Netbios名字
%v Samba版本
其他变量
%T当前⽇期和时间
使⽤这些变量的例⼦:如果你的⽹络内有⼀些机器分别运⾏windows 3.11和windows98,你可以创建两个配置⽂件,为每种系统使⽤⼀个,那么可以使⽤%a变量。
结果: 我们的配置⽂件
&f file>
[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
guest account = nobody
invalid urs = root
; 改掉它的netbios名
咏怀其一netbios name = pantoufle
; 它监听的⽹络
; (你不需要他在另外⼀个⽹络上⾯也进⾏服务,因为那个是因特⽹联接)
interfaces = 192.168.0.1/255.255.255.0
;
curity ur表⽰每个⽤户都必须在这个rver上⾯拥有⼀个Unix账号 curity = ur
; 这个机器属于哪个⼯作组
workgroup = rycks
; 服务器的简单说明,当察看细节的时候可以看到
; %h 是服务器的DNS名字,%v samba的版本号
rver string = %h rver (Samba %v)
; 我们使⽤samba⾃⼰的log⽂件,不仅仅使⽤syslog
syslog only = no
; ⾄少重要的信息应当写到syslog去,
; 其他信息会写到 /var/log/smb(nmb)/
syslog = 0;
;
嗯,调整⼀下性能!
socket options = IPTOS_LOWDELAY TCP_NODELAY \
SO_SNDBUF=4096 SO_RCVBUF=4096
; 使⽤加密过的⼝令哦,注意了,
; 每个W95客户端都要打上 MS SMB 安全补丁。
; NT4 必须打上 SP3 或者更⾼补丁
色艺视频; 我不记得W3.11的情况了:很有可能它并不⽀持加密⼝令 :(
encrypt passwords = yes
; 这个rver同时也是WINS 服务器。
; WINS 允许两个⽹络使⽤不同的ip段
; (⽐如 192.168.0.0/255.255.255.0 和 192.168.0.1/255.255.255.0) ; 互相察看"另外" ⽹络的共享资源,⼀旦⽹关gateway激活。
wins support = yes
; OS 级别。⽐如我们的rver是域控制器,本地登录,诸如此类
; 如果⽹络⾥⾯有⼀个NT服务器的话,我们的级别应该"更⾼" 。
os level = 34
; 域管理
domain master = yes
local master = yes
preferred master = yes
; 域连接管理
domain logons = yes
; 当有⽤户登录时,运⾏什么脚本?
;
%g 指向⽤户所在的主要组
logon script = %g.bat
; 在什么地⽅可以找到我们的脚本?
; %L 是samba服务器的netbios名
logon path=\\%L\netlogon
; 在什么地⽅存放⽤户的profile?
; %U ⽤户的登录名
logon home=\\%L\%U\winprofile
; 以何种⽅式检查资源以查找该机器名字?In which order check the resources to find ; the name of a machine?
; 注意,不象windows在正常的基础上就发送⼴播,我们的⼴播是最后进⾏。
name resolve order = lmhosts host wins bcast
; 是否Samba必须⽤DNS proxy的⽅式运作?
机械租赁合同范本dns proxy = no
; 保留其⽂件名和⼤⼩写
comityprerve ca = yes
short prerve ca = yes
; 我们必须同步windows和Linux的⼝令么?
unix password sync = yes
; 如何同步⼝令
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* \
%n\n *Retype\snew\sUNIX\spassword:* %n\n .
;
Log⽂件的最⼤尺⼨,
; 防⽌/var ⽬录爆掉 :p
max log size = 1000
; 我们是时间服务器:⽤来同步各个机器的时间
; 通过登录⽤.bat⽂件来使⽤这⼀特性。
time rver = yes
; 指定netlogon所在位置。
; 这只会在登录时使⽤到
; 因此我们不必让它公开。
[netlogon]
path = /home/netlogon/%g
public = no
writeable = no
browable = no
; 每个⽤户的Home⽬录
[homes]
comment = Home Directories
browable = no
; 他可以写⼊了,对吧。
read only = no
; 默认的Unix umask.
create mask = 0700
;
基于安全⽬的,该⽬录被设定为700
directory mask = 0700
; 共享FTP,这样可以不⽤特别的客户端就能在
; ⽹络邻居⾥⾯使⽤了
[ftp]
path = /home/ftp/pub
public = yes