loading ...

2006-10-24 | samba配置

分享
标签: 计算机  配置  打印机  网络  目录 
为什么选用Samba
Samba的配置
sam.conf文件简介
配置选项
Samba全局设置
大小写管理
默认全局设置-全局设置
配置共享
共享打印机
配置登录目录
默认全局设置-目录与打印机
配置片段
排除错误
基本网络是否正常
Samba 服务是否运行
防火墙是否打开
用户口令是否使用
Samba是Windows操作系统用来共享文件和打印机的协议.利用Samba可以把Linux计算机放进Microsoft网络中.

Samba是个异构服务.配置好的Linux服务器放入Microsoft的网络后,其他计算机看不到它与Microsoft计算机的任何区别.

Samba可以沟通Linux与Microsoft Windows, 即可以在这些操作系统中无差异的通信.可以将提供Samba服务的Linux服务器的特定目录配置成与Microsoft Windows 网络的任何其他成员一样的共享目录.

为什么选用Samba

文件共享的工具有很多,比如ftp,nfs等等. Samba不同于ftp,提供在线运行程序的功能,即不需要下载到本地硬盘也能够使用一些程序.最常见的是提供在线观看电影. 虽然nfs也能提供文件共享功能,但是nfs的共享功能需要类Unix的系统,在一般的网络中,很多用户使用Windows系统.

基于上述的考虑,学习使用Samba是有用处的.

Samba提供了很全的共享功能,同时配置文件中的选项十分丰富.

Samba的主要配置文件是smb.conf.

Samba的配置

sam.conf文件简介

sam.conf文件记录samba的配置信息.建议修改前备份安装Samba时默认的配置文件,每次修改后使用 service smb reload 命令读取新的配置.

配置文件一般有三部分,全局配置,打印机配置,共享配置.配置文件以[]标识某一部分配置的开始.全局配置中的内容可以作为后续配置的默认选项.

修改配置文件的方法有两类:修改文本smb.conf,使用有交互界面的配置程序,如SWAT,redhat-config-samba等,后者也是通过修改smb.conf文件达到配置的目的的.一般推荐修改smb.conf文件的方法进行配置.

配置选项

Samba全局设置

smb.conf文件中有大量全局变量.如果不用某个变量,则Samba程序采用默认值.
  • 基本网络类型: 描述要加入的网络类型.
    workgroup = WORKGROUP
    
    计算机的描述
    server string = CPSELinux Samba Server
    
  • IP地址限制: 除可以用iptables限制对Samba的访问外,可以用hosts allow命令进一步限制访问.
    hosts allow = 166.111.8.238
    
    或者允许一个网段的访问
    hosts allow = 166.111.
    
    更多限制
    hosts allow = 59.66. 166.111.8.238
    
  • Samba与打印机: 默认情况下,打印机放在共享的可浏览的项目列表中.通过Samba在标准的CUPS系统装入一系列打印机:
    printcap name = /etc/printcap
    load printers = yes
    printing = cups
    
  • 宾客账号: Samba可以生成标准的guest帐号.如果要使用宾客帐号,要保证pcguest是Linux系统中的实名用户:
    ;guest account = pcguest
    
  • 日志文件: 下列选项对连接Samba服务器的每台计算机配置不同的日志文件。
    log file = /var/log/samba/%m.log
    
    指定日志文件大小,size为0时表示日志文件的长度不受限制。当指定大小时,文件长度的单位为K。
    max log size =0
    
  • 安全模式: Microsoft Windows 网络提供了几个基本的安全模式。选择的方法取决于共享目录的条件和共享网络的类型。
    security = share
    security = user
    security = server
    security = domain
    
    Samba的安全模式
    share 共享目录只要用口令即可访问的系统。
    user 共享目录通过用户名和口令限制的系统。
    server 用户名和口令优先选择集中式数据库的系统。
    domain 选择windows域系统,要求/etc/samba中有smbuser与smbpasswd数据库文件。
  • 口令设置: 如果设置security = share或security = domain,则还应指定网络的口令服务器。如果已知主域控制器和备份域控制器名称为ntserv1与ntserv2,则需使用下列命令:
    password server = ntserv1 ntserv2
    
    如果不知道主域控制器和备份域控制器名称,则可以将Samba服务器设置成搜索主域控制器:
    password server = *
    
    试验八字符口令与用户名的所有大小写字母组合:
    ;password level = 8
    ;username level = 8
    
    将Samba配置成以标准Samba口令文件发送加密口令。可以用smbadduser添加 Microsoft Windows 用户和口令。
    encrypt passwords = yes
    smb passwd file = /etc/samba/smbpasswd
    
    用户在Microsoft Windows计算机上更改口令,下列命令同步相应的Linux口令:
    unix password sync = yes
    passwd program = /usr/bin/passwd %u
    passwd chat = New Password %n\n Retype new password %n\n passwd: all
    authentication tokens updated successfully
    
    用PAM(可插入验证模块)保护口令,PAM将覆盖password program变量
    pam password change = yes
    
    如果设置明文口令,下列命令用PAM控制对系统的访问
    obey pam restrictions = yes
    
  • 映射Linux 与 Windows 用户: 可以用不同的用户名匹配Linux与Windows用户。可以使用smbadduser添加用户,也可以直接修改/etc/samba/smbusers文件。
    ;username map = /etc/samba/smbusers
    
  • 计算机定制 Samba: 可以在远程计算机上配置Samba服务器。激活下面的命令,则每台计算机会寻找特定的配置文件。
    ; include = /etc/samba/smb.conf.%m
    
  • 性能管理: 优化网络性能。TCP_NODELAY通常使Samba性能加倍,SO_RCVBUF与SO_SNDBUF变量是进出Samba的数据缓冲区。
    socket options = TCP_NODELAY SO_RCVBUF = 8192 SO_SNDBUF = 8192
    
  • 网络接口: 服务器可以配置多个网络接口卡,将Samba访问限制在一个网卡上,也可以将Samba服务器设置用于特定的远程网络。
    interfaces eth1 172.168.88.0/24
    
  • 浏览: 在Microsoft Windows网络中,浏览就是计算机显示可用的共享目录与打印机。一台计算机是浏览主计算机,其他计算机将共享信息发送到这台计算机。如果不知道网络中的主浏览器的IP地址,则可以使用广播地址。
    remote browse sync = 192.168.1.255
    
    Microsoft 网络中的一台计算机保存浏览表,通过“选举”确定此计算机,不参与选举。
    ;local master = no
    
    参与“选举”,同时战胜除域名控制器和Microsoft Windows NT 服务器外的其他计算机。 ;os level = 33 不让别的计算机有任何机会,将Samba设置为域中的主浏览器
    ;domain master = yes
    
    Samba服务器的工作量不足,设置为优选主浏览器
    ;preferred master = yes
    
  • 登录管理: 网络中有Linux和Microsoft Windows计算机,激活下面的命令,将Samba设置为这个网络的主域控制器,控制用户名与口令数据库:
    ;domain logons = yes
    
    Microsoft网络可以按用户或计算机配置登录,一个登录脚本配置一种,这些脚本可以放在Samba服务器中。%m对应与每台机器,即计算机,%U对应每个用户。
    ; logon script = %m.bat
    ; logon script = %U.bat
    
    利用中央配置文件,用户登录时可以向网络中的任何Microsoft计算机提供一致的外观。可以将配置文件存放在Samba服务器的登录路径中。%L表示服务器名,%U表示用户名。
    ;logon path= \\%L\Profiles\%U
    
  • WINS与DNS: WINS 是Windows Internet Name Server的缩写,与DNS相似,它是一个NetBIOS名称与IP地址的数据库。如果Samba无法在/etc/hosts中找到所需的计算机名,则WINS与DNS提供了两个其他的数据库。下列命令在本地Samba服务器中设置WINS:
    ;wins support = yes
    
    也可以查找特定IP地址的不同WINS服务器(这里的地址是任意的,应换成相应的地址)。这里Samba服务器成为WINS客户机:
    ;wins server = 192.168.0.22
    
    如果Microsoft网络中还有旧式计算机,激活下面的命令,使所有计算机都能访问WINS数据库:
    ;wins proxy = yes
    
    如果计算机不再WINS数据库中,激活下面的命令,将DNS服务器设置为数据库:
    ;dns proxy = yes
    

    大小写管理

    Linux是大小写相关的操作系统,Microsoft是大小写无关的操作系统。通常,Samba保留所传输的文件的大小写。可强制让一切保持小写,下面命令影响长文件名和采用Microsoft 8.3文件名格式的文件名:
    ;preserve case = no
    ;short preserve case = no
    
    用下列命令将所有文件名设置为默认大写:
    ;default case = upper
    
    如果所有用户都采用大小写相关的文件名,可以使用下面的命令使Samba服务器大小写相关:
    ;case sensitive = yes
    

默认全局设置-全局设置

这里列出了smb.conf默认的全局设置。如果使用默认参数,则不必在smb.conf中列出。
变量 默认
case sensitive no
default case lower
dns proxy yes
domain logons no
encrypt passwords no
guest account nobody
hosts allow 所有主机
include 无默认
interfaces 除127.0.0.1外的所有活动接口
load printers yes
local master yes
log file 无默认
logon script 无默认
max log size 5000KB
obey pam restrictions no
pam password change no
passwd program /bin/passwd
passwd server 无默认
passwd level 0
preferred master auto
preserve case yes
printcap name /etc/printcap
printing 无默认
remote announce 无默认
remote browse sync 无默认
security user
server string Samba %v, %v显示版本号
short preserve case yes
smb password file 无默认
socket options TCP_NODELAY
ssl CA certFile /usr/local/ssl/certs/trustedCAs.pem
unix password sync no
username level 0
username map 无默认
wins proxy no
wins server 不支持
wins support no
workgroup WORKGROUP

配置共享

  • [Homes]共享
    [homes]
    comment = Home Directories
    browseable = no
    writeable = yes
    valid users = %S
    create mode = 0664
    directory mode = 0775
    
  • [tmp]共享
    [tmp]
    comment = Temporary file space
    path = /tmp
    read only = no
    public = yes
    

    共享打印机

    配置了CUPS打印机,则要配置基本共享。
    [printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    guest ok = no
    writeable = no
    printanble = yes
    

    配置登录目录

    在Microsoft网络上用Samba将Linux计算机配置成域控制器时,要配置每个用户的登录和配置文件路径。要先建立相应的目录。下列命令根据path指定的目录在Microsoft Windows域中配置登录:
    [netlogon]
    comment = Network Logon Service
    path = /usr/local/samba/lib/netlogon
    guest ok = yes
    writable = no
    share modes = no
    
    下列命令可以对登录Samba服务器的用户配置本地配置文件:
    [Profiles]
    path=/usr/local/samba/profiles
    broweable = no
    guest ok = yes
    

    默认全局设置-目录与打印机

    目录与打印机的默认全局设置。
    变量 默认
    browseable yes
    comment 无默认
    create mode create mask = 0744
    directory mode directory mask = 0755
    guest ok no
    path 无默认
    printable no
    public guest ok = no
    read only yes
    writable no
    write list 无默认
    valid users 无默认

配置片段

这里是几个例子。
  • [public]共享

不一定要与所有人共享目录。

[public]
comment = Public Stuff
path = /home/samba
public = yes
writeable = yes
printalbe = no
write list = @staff
  • 另一个[public]共享

下列的目录使所有用户可以读取和写入该目录下的所有文件。only guest = yes命令使任何连接这个目录的用户只有guest用户的权限。

[public]
path = /usr/somewhere/else/public
public = yes
only guest = yes
writeable = yes
printable = no
  • 两人共享

仅有两人共享,只有两个人可以访问此共享目录。

[myshare]
comment =Mary's and Fred's stuff
path = /usr/somewhere/shared
valid users = mary fred
public = no
writable = yes
printable = no
create mask = 0765
服务器中包含 /usr/somewhere/shared目录和用户mary与fred。
  • 专有目录

专有目录只有特定的人可以访问。

[fredsdir]
comment = Fred's Service 
path = /usr/somewhere/private
valid users = fred
public = no
write able = yes
printable = no
  • 计算机的共享目录

配置特定计算机的共享目录。

[pchome]
comment = PC Directories
path = /usr/local/pc/%m
public = no
write able = yes

%m表示计算机名。

排除错误

基本网络是否正常

广播地址应该与Samba服务器同学的所有客户端的广播地址相同。使用下面的命令查看广播地址:
# ifconfig -a 

Samba 服务是否运行

在Linux系统上用smbclient命令检查Samba所需的进程是否在运行并且像预期的那样进行共享。

使用下面的命令:

# smbclient -L localhost
Password: *******
如果显示出工作组中的所有机器,则说明Samba服务器在本地计算机上运行。如果服务器没有运行,将看到"Connection refused"的提示信息。此时需要重启Samba服务。

防火墙是否打开

如果Samba已经在本地计算机上运行,但是无法从局域网中的Windows或Linux客户端访问,有可能是Linux Samba服务器上的防火墙禁止对NetBIOS服务的访问。在安全的局域网中,使用下列命令清除防火墙的规则:
# iptables -F
如果不是防火墙的问题,用下面的命令重新启动防火墙。
# service iptables restart

用户口令是否使用

作为特定用户尝试访问Samba共享目录。使用如下的命令:
# smbclient //localhost/tmp -U chris
如果没有问题将看到Samba提示符,一个类似于DOS的提示符。

Updated: 2005-07-17 Home / Index
分享 分享 |  评论 (1) |  阅读 (?)  |  固定链接 |  类别 (Linux) |  发表于 08:24  | 最后修改于 2006-11-06 14:03
搜狐博客温馨提示:搜狐博客官方不会要求参加活动的各位博友缴纳任何的手续费用。请勿轻信留言、评论中的中奖信息,更不要拨打陌生电话及向陌生帐户汇款,谨防受骗!识别更多网络骗术,请 点击查看详情
正在读取评论信息...
您还未登录,只能匿名发表评论。或者您可以 登录 后发表。
 
  *中国人爱国心,搜狗输入法爱国主题皮肤下载>>
表  情:
加载中...
回复通知: 同时用小纸条通知对方该回复