分享
 
 
 

Samba配置

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

Samba 配置

给大家推荐个好网站,有大量的linux资料,软件,技术文档免费下载。

http://linux-down.kmip.net

摘要:

我将会尝试介绍给大家我们已经完成的工作:以Linux-samba服务器实现一个用作Windows网络的域控制器。

用户权限管理,profile....将会被详细介绍。

本文以Debian GNU/Linux 2.2 为基础,因此默认的smb.conf文件可能和你的文件有一些小的出入。

下面用的的samba版本号是2.0.7

Samba安装

首先我们假定你知道一点儿samba,而且它已经安装到你的server上头了。

如果没有,快速安装的方法是:

Debian: apt-get install samba

RedHat(Mandrake): rpm -vih /mnt/cdrom/RedHat(Mandrake)/RPMS/samba*

配置文件: 一般设定

Samba使用单个的配置文件,这个文件里面你可以找到一些象这样的标记块: [global]

samba只有一个配置文件!

<minimalist smb.conf 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 users:

不允许访问samba的用户名列表。比如“root”不应该被允许访问samba。

interfaces:

如果你的Linux服务器有一张以上的网卡,同时你希望限制只有一个网络可用。

security:

可用的安全模式。如果使用security=user将会要求每个用户都在GNU/Linux服务器上拥有一个账号

如果你不需要samba服务器管理用户,同时打算让所有人是用同样的共享资源,可以设为:security=share。

workgroup:

你的linux服务器所在的工作组名字。

server 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 server

preferred master:

如果有其他服务器存在的话,Samba是否会是首选的一个?

domain logons:

Samba可以管理整个域的连接控制么?

logon script:

当此用户开始一次会话时运行哪个脚本?

logon path:

启动脚本文件在什么地方?

logon home:

在何处存放用户profile?

name resolve order:

以怎样的顺序使用资源顺序以查询网络内机器名字?

dns proxy:

Samba服务器是否同时也被用作DNS代理服务器?

preserve case:

保持文件名的大小写情况。

short preserve case:

保持文件名的大小写情况。

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变量。

结果: 我们的配置文件

<smb.conf file>

[global]

printing = bsd

printcap name = /etc/printcap

load printers = yes

guest account = nobody

invalid users = root

; 改掉它的netbios名

netbios name = pantoufle

; 它监听的网络

; (你不需要他在另外一个网络上面也进行服务,因为那个是因特网联接)

interfaces = 192.168.0.1/255.255.255.0

; security user表示每个用户都必须在这个server上面拥有一个Unix账号

security = user

; 这个机器属于哪个工作组

workgroup = rycks

; 服务器的简单说明,当察看细节的时候可以看到

; %h 是服务器的DNS名字,%v samba的版本号

server string = %h server (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

; 这个server同时也是WINS 服务器。

; WINS 允许两个网络使用不同的ip段

; (比如 192.168.0.0/255.255.255.0 和 192.168.0.1/255.255.255.0)

; 互相察看"另外" 网络的共享资源,一旦网关gateway激活。

wins support = yes

; OS 级别。比如我们的server是域控制器,本地登录,诸如此类

; 如果网络里面有一个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

; 保留其文件名和大小写

preserve case = yes

short preserve case = 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 server = yes

; 指定netlogon所在位置。

; 这只会在登录时使用到

; 因此我们不必让它公开。

[netlogon]

path = /home/netlogon/%g

public = no

writeable = no

browseable = no

; 每个用户的Home目录

[homes]

comment = Home Directories

browseable = no

; 他可以写入了,对吧。

read only = no

; 默认的Unix umask.

create mask = 0700

; 基于安全目的,该目录被设定为700

directory mask = 0700

; 共享FTP,这样可以不用特别的客户端就能在

; 网络邻居里面使用了

[ftp]

path = /home/ftp/pub

public = yes

printable = no

guest ok = yes

; 临时目录

[tmp]

path = /tmp

public = yes

printable = no

guest ok = yes

writable = yes

; 另外的一个临时目录

; 提供给特定的需要特别多空间的用户

[bigtemp]

path = /home/bigtemp

public = yes

printable = no

guest ok = yes

valid users = erics

writable = yes

</smb.conf file>

现在,我们在服务器上有些啥

简单看看,我们在服务器上应该有什么:

每个用户一个账号

smb.conf 文件

一个目录 /home/netlogon (就像我例子里头的那个)

在这个目录里头应该对应每个用户组有一个 .bat 文件(例子马上就来)

一个CONFIG.POL 文件提供系统安全策略(也在这个目录里头)

config.pol文件,去windows CD里面找出poledit.exe来造。

<file /home/netlogon/admin.bat>

net use P: \\\\pantoufle\\homes

net use T: \\\\pantoufle\\tmp

net time \\\\pantoufle /SET /YES

</file admin.bat>

<file /home/netlogon/teachers/teachers.bat>

net use P: \\\\pantoufle\\homes

net use T: \\\\pantoufle\\tmp

net time \\\\pantoufle /SET /YES

regedit /s \\\\pantoufle\\netlogon\\teachers.reg

</file teachers.bat>

<file /home/netlogon/pupils/pupils.bat>

net use P: \\\\pantoufle\\homes

net use T: \\\\pantoufle\\tmp

net time \\\\pantoufle /SET /YES

regedit /s \\\\pantoufle\\netlogon\\pupils.reg

</file pupils.bat>

<file /home/netlogon/teachers/teachers.reg>

[HKEY_CURRENT_USER\\Software\\Microsoft\\Windows

\\CurrentVersion\\Explorer\\User Shell Folders]

"Personal"="P:\\\\"

</file teachers.reg>

<file /home/netlogon/pupils/pupils.reg>

[HKEY_CURRENT_USER\\Software\\Microsoft\\Windows

\\CurrentVersion\\Explorer\\User Shell Folders]

"Personal"="P:\\\\"

</file pupils.reg>

这个文件允许自动挂接用户个人目录到P: 而临时目录被挂接到T: 。同时系统时间也跟samba服务器作同步。

提示: .bat 文件的格式必须是“DOS模式”。最好就是在notepad里面生成这个文件,然后再放到服务器上。

制定系统安全策略(C) (TM) (R)

使用域控制器可以让windows安全些

就是这个标题!当然,我从MS关于他们系统安全策略工具的文档里面借来的。

因此,为了创建一个windows系统策略,比如防止某些用户(所有的?)运行regedit或者dos程序等等,你不得不使用Windows98 CD上面的POLEDIT。

运行PolEdit,查看它的帮助,写下相关的信息……本文并不打算教你怎么使用私有软件。

一旦你准备好了.POL文件, 把它复制到samba服务器上,那个在[netlogon]中指定的路径里面。

注意: 对于W9x 客户机,系统策略文件必须是CONFIG.POL……至于WindowsNT,应该是另外一个名字,因为我没有NT没办法告诉你 :'(

哈,不用送给我一个NT让我测试。总之很感谢,你的良心大大的好 :o)

提示: PolEdit 允许创建用户组和用户,不过我们还没有成功过。只有默认用户被放到账号里面去。

比如,如果我用PolEdit创建一个“admin”组,当用户以“erics”身份连接的时候,允许运行regedit(他的主要组是“admin”),我没有办法运行regedit :(

不过,用poledit创建一个“erics”用户倒是工作得很好。

因为觉得像用poledit建立1056个用户这类工作很没劲,而且全局用户管理看上去更有意思一点儿,我们“建议”下面这样一些技巧:

为了这件事儿,我们已经解决了几个问题:造出来三个config.pol文件给默认用户,因此,在Linux服务器这边,我们还有:

/home/netlogon/teachers/CONFIG.POL

/home/netlogon/teachers/teachers.bat

/home/netlogon/pupils/CONFIG.POL

/home/netlogon/pupils/pupils.bat

/home/netlogon/admin/CONFIG.POL

/home/netlogon/admin/admin.bat

此外我们已经修改smb.conf文件把这个东西放进去:

<smb.conf file>

[netlogon]

; 我们用%g变量指定netlogon对于不同的用户组给出不同的用户目录

; 以让用户能够正确对应到符合他的config.pol文件。

path = /home/netlogon/%g

public = no

writeable = no

browseable = no

</smb.conf file>

Windows机器的配置

如果运气好点儿的话,点20下鼠标,然后重起就足够够配置windows了!

Win98客户机

点击 开始/设置/控制面板 然后 双击 网络(译注:不好意思,很久没有用过win9x了,都靠记忆翻译的对应名字,搞不好有出入,大家多担待)

安装:

MS network

Network card driver

TCP/IP support and ONLY TCP/IP (no ipx or netbios)

Files and printers sharing

然后点击"Identification" tab然后填入机器名和机器所在工作组名。

点击"Access control" 然后选中用户级访问控制

回到the configuration tab 然后双击"Client for MS network"

不要忘记配置 TCP/IP 支持:

双击:TCP/IP

IP地址:

你希望这台机器用的IP(ex: 192.168.0.2)

子网掩码(ex: 255.255.255.0)

WINS配置:

激活 WINS

加入 WINS 服务器,IP 192.168.0.1 (假设你的samba服务器是这个地址)

网关:如果你有网关的话,就在这里指定啦

DNS配置:配置你的DNS

关于“调优/性能/good sense?”

在工作中,由于使用windows profile,瓶颈很快显现。

事实上,profile被MS认为重要的东西填满了,比如IE的cache,Outlook的cache等等。

简单地说,这意味着每当用户跟服务器连结或者断开时,都会有大约10MB的数据被下载或者上传(我的profile是很标准的,有桌面背景,ie,outlook的cache……)。

每个用户10MB,在一个有15台机器的地方(“一般”实验室的大小),就会用掉150MB,如果这个楼层有10个这样的地方……算算看下班铃响的时候,会有多少用户离开吧。

现在你该料到结果,那么提前5分钟跑路吧……(嗯,我得承认我读书时候就干过)……总比过了5分钟再跑强。就象一个大城市的将要发生的大塞车,最佳的跑路时机要么是早10分钟,要么两个小时以后!

因此,根据于你实施的策略,把每个用户home目录挂到P: (作为例子,P表示People,个人),并且告诉他们“把你的文档存到P里面去,不要放到‘我的文档’里面,否则文件会丢掉的”,这样应该是不错的办法。

接下来,你不得不去找一个软件,让它能够配置成为这样:把书签放到P:\\bookmarks.html等等。

我甚至不知道在windows世界是不是有这样的东西!

如果你知道这样的解决方案,不妨写下来,共享知识吧~

问题和建议,作为补充

在同一个域里面,是否有可能有多个工作组,对它如何进行管理,是否会跟GNU/Linux Samba之间发生问题?Is it possible to have various workgroups on the same domain, how can this be managed, is it possible to share the problems between various GNU/Linux Samba?(这句话比较头大,还是留着,免得误导)。

如何同时使用NT和Samba服务器?

NT客户端配置:CONFIG.POL文件在NT下面有另外一个名字。

当只有Samba服务器时(没有NT)一个现实的问题:我在W98上工作而且我想共享我的本地资源,比如我的打印机:

显示我的打印机共享状态

接下来点击添加

HOT NEWS: 有人给了我一个方案。在windows配置的第三步时选择“resource level access control”就有了。

感谢

Bruno <bcarrere(at)asp-france.fr> 进行了校对,并在之前给了一些其他的帮助 :o)

JohnPerr 督促我在LinuxFocus写下了我的第一篇文章,并且把这篇文章翻译成了英文。

Michel Billaud aka MiB 在我们的问题上给出了解决方案,并且还教会了我们一些小技巧,比如strace 等等 :o)

Etienne, éric, 还有一个我忘记了名字的的朋友(为此致歉)。谢谢你们与大家共享你们在NT服务器方面的知识。

Jean Peyratout, 难道我们需要说出为什么嘛?这样会花很多时间的。

The Abul generally speaking

Rycks 给我时间和资源来为自由软件开发以及写文档。

参考资料

O'Reilly 线上书籍:http://www.oreilly.com/catalog/samba/chapter/book/index.html

本文档的最新版本可以在the rycks.com documentation section找到。

给大家推荐个好网站,有大量的linux资料,软件,技术文档免费下载。

http://linux-down.kmip.net

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有