繁体中文
设为首页
加入收藏
当前位置:技术首页 >> 系统 >> Linux/Unix >> 实用技巧 >> Samba简介

Samba简介 (2)

2006-12-05 21:03:38  作者:admin  来源:赛迪网  浏览次数:165  文字大小:【】【】【
关键字:Samba

而这下面的段定义了一个打印共享,共享是只读的,但可打印,就是说唯一允许的写访问就是打开、写入和关闭脱机文件。

 

  [myprinter] 

  path = /usr/spool/public 

  read only = true 

  printable = true 

  guest ok = true

特殊段:

[global] 段

在这个段的参数是全局有效的。

[homes] 段

当用户请求一个共享时,服务器将在存在的共享资源段中去寻找,如果找到匹配的共享资源段,就使用这个共享资源段。如果找不到,就将请求的共享名看成是用户的用户名,并在本地的password文件里找这个用户,如果用户名存在且用户提供的密码是正确的,则以这个home段克隆出一个共享提供给用户。这个新的共享的名称是用户的用户名,而不是home,如果home段里没有指定共享路径,就把该用户的宿主目录(home directory)作为共享路径。

通常的共享资源段能指定的参数基本上都可以指定给[home]段。但一般情况下[home]段有如下配置就可以满足普通的应用。

 

  [homes] 

  writeable = yes

注意,如果在[home]段里加了guess access =ok, 所有的用户都可以不要密码就能访问所有的宿主目录!

[printers] 段

该段用于提供打印服务。

如果定义了[printers]这个段,用户就可以连接在printcap文件里指定的打印机。当一个连接请求到来时,smbd去查看配置文件里已有的段,如果和请求匹配就用那个段,如果找不到匹配的段,但[home]段存在,就用[home]段。否则请求的共享名就当作是个打印机共项名,然后去寻找适合的printcap文件,看看请求的共享名是不是个有效的打印共享名。如果匹配,那么就克隆出一个新的打印机共享提供给客户。

注意,[printers]服务必须是printable,如果指定为其它,服务器将拒绝加载配置文件。

通常指定的路径应该任何人都有写入权限。

 

  [printers] 

  path = /usr/spool/public 

  writeable = no 

  guest ok = yes 

  printable = yes 

  printer driver = Epson LQ-1600K

2.参数

段里可以指定的参数非常多,有些参数是全局段才可以用的,而有些参数是任何段都可以用的,先介绍一些基本参数,明白这些基本参数,基本上就可以一般性地应用samba了,如果要更精细地控制samba,可以继续参考一些高级配置。另外,本章假设读者对MS WINDOWS 网络是熟悉的,不熟悉的可以参考相关资料。

全局参数

2.1 基本参数

workgroup

说明:这个参数用来指定samba所要加入的工作组,另外如果在设置了security=domain,则workgroup可以指定域名。例如:

workgroup = wgp1

指明工作组为wgp1

netbios name

说明:这个参数指定samba的netbios名,可以不设置,samba将会使用机器的DNS名的第一部分,如果你的机器的DNS名是host1.domain,就用host1 例如:

netbios name = public

指定NetBios名为public

server string

说明:这个参数指定在浏览列表里的机器描述,和MS WINDOWS 里配置网络时的描述是一样的。可以是任何字符串。也可以不填,samba会用缺省的 samba %v,即samba 尾随它的版本号,不过如果要模仿NT象一点的话,可以填一下。例如:

server string = Master File Server

2.2 安全参数

security

说明:这是个重要的安全配置参数,有4个值,分别是share、user、server和domain,定义了samba的基本安全级,通常是 user

security = user

这是samba的默认配置,这种情况下要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。

securtiy = share

这是几乎没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。

security = server

和user安全级类似,但用户名和密码是递交到另外一个SMB服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级,从用户端看来,server和user这两个级别是没什么分别的。

security = domain

这种安全级别要求网络上存在一台NT PDC,samba把用户名和密码递交给NT PDC去验证。

从用户端看来,user级以上的安全级其实是没什么分别的,只是服务器验证的方式不同,但这三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。

encrypt passwords

说明:是否对密码进行加密,samba本身可以维护一个密码文件/etc/smbpasswd,如果不对密码进行加密则在验证会话期间客户机和服务器之间传递的是明文密码,samba直接把这个密码和Linux里的/etc/passwd密码文件进行验证。这其中有些问题,之一就是在Windows 95 OS/R2以后的版本和Windows NT SP3以后的版本缺省都不传送明文密码,要让这些系统能传送明文密码必须在其注册表里更改。对于Windows 95 OS/R2以上的版本,可以在[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]里加一个十六进制值

EnablePlainTextPassword=00000001。对于WINDOWS NT SP3 以上的版本,可以在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters]里加一个十六进制值EnablePlainTextPassword=00000001,这样就可以让它们能在网络上传送明文密码。

另外,还有一件很烦人的事情就是NT系统,如果一个服务器是处于用户级别上的安全模式,又不支持密码加密传送的话,NT将拒绝和服务器连接,除非服务器向用户提示要密码。这在实际应用中会出现什么情况呢。如果你在NT机器有个帐户user1,在Linux机器上也有个帐户user1,密码都是一样,但你去和Linux机器上的共享连接的时候,NT就会提示你错误的密码或未知的用户名,要求你再次输入用户名和密码,NT才和服务器连接。如果你映射了Linux上的共享资源作为NT的一个网络驱动器,那么NT在下次启动试图重新连接这个网络驱动器时,又会提示你错误密码或未知用户名.... 烦得很。所以一般samba的应用基本都设定为yes:encrypt passwords = yes。

当然,samba的用户是基于Linux系统用户的,sambad的加密工具是smbpasswd,最简单的用法是smbpasswd -a username 这里的username必须是/etc/passwd里存在的用户名,然后会提示输入密码和确认密码,会生成一个新的密码条目,放在/etc/smbpasswd这文件里。另外,samba提供了一个工具—mksmbpasswd.sh,这是shell脚本,可以从/etc/passwd文件里生成smbpasswd文件,用法是:cat /etc/passwd | mksmbpasswd.sh > /etc/smbpasswd 。把passwd里的用户都加到smbpasswd里。从安全起见,smbpasswd这个文件的存取权限请设为600。 

username map

说明:这个参数可以让你指定一个文件包含来自客户机的用户名与Linux系统用户名之间的映射,文件的格式是每行一个映射,映射的格式是:Linux usename = client username ... 。

例如 root = admin adminstrator

这样,当客户机的用户是admin或administrator时,就被转换成root。

这个功能对用户管理很方便,可以让管理员不需要对客户或服务器上的用户帐号大动干戈。

文件名通常用默认的/et/smbusers

password level

说明:这是针对一些SMB客户像Windows for Workgroup、OS/2之类而设的,像WFW这样的系统在发送用户密码的时候,会把密码转换成大写再发送,这样就和samba的密码不一致,这个参数可以设定密码里允许的大写字母个数,这样samba就根据这个数目对接收到的密码进行大小写重组,以重组过的密码尝试验证密码的正确性。这个值越大,组合的次数就越多,验证时间就越长,安全性也越低!

例如: 如果这个值是2,用户的密码是abcd,但发送出去其实是ABCD,samba就会把这个ABCD进行大小写重组,组合的密码可以是下列:Abcd, aBcd, abCd, abcD, abcd, ABcd, AbCd, AbcD,aBCd,aBcD,abCD。

所以如果没有必要,就把这个值定为是零(一般应该是没这必要,现在谁还用WFW这样的系统)。这样的话samba只尝试两次,一个是接收到的密码,另一个尝试的是这个密码都是小写的情况。即使是这样,也还存在着一定的安全性问题。

guest account

说明:这个参数指定guest级帐户的用户名,可以是nobody、ftp,guest级别的用户可以不要密码就访问给定的guest服务。

host allow

说明:这个参数指定那些机器可以访问samba,例如:host allow = 192.168.1. 127.

指定192.168.1.0里的所有机器都可以访问。

如果不允许子网里的一台机器访问,可以这样设:host allow = 192.168.1. EXCEPT 192.168.1.33

禁止192.168.1.33访问

host deny

说明:和host allow 相反是指定那些机器不能访问,格式一样。

责任编辑:admin

本文引用地址: http://tech.itzero.com/2006/1205/4957.html 请粘贴到你的QQ/MSN上推荐给你的好友

相关文章
Samba服务器安装配置过程介绍
Samba服务器多系统用户共享目录设计方法
Samba使Linux成为“文件服务器”(三)
Samba使Linux成为“文件服务器”(一)
Linux下Samba做文件服务器的问题解答
常用Linux与Windows共享 建最简Samba
让Samba服务器自动Mount光驱
Win与Linux间的通讯除Samba外的方案
Samba服务器的设置
最快速地建立Samba服务
redhat linux 9.0的samba设置详解
 

最新文章

更多

· Linux指令篇:设备管理--...
· SCO UNIX下磁盘设备的应...
· 简单方法确保 Linux 系统...
· 将SSH与PHP相连接 确保...
· 系统安全:快速安全地建立...
· 在Linux的系统环境下配置...
· 分级防御针对Linux服务器...
· Sendmail邮件服务器升级...
· 本文介绍最简单的Linux系...
· 手把手教授架设基于LINU...

热点文章

更多

· SCO UNIX下磁盘设备的应...
· Linux指令篇:设备管理--...

其它推荐