samba的配置与管理

一、samba简介

samba实现了UNIX与windows的文件共享和打印共享,可以在本地的windows系统上的网络邻居来访问非windows上的文件,打印共享,甚至还可以映射网络驱动器,这就如同使用本地磁盘一样方便,Samba之所以能够工作,因为SMB协议模仿了Windows内核的文件和打印共享协议。他们之间的数据传输使用SMB(Service Message Block)协议,这是一个在传输层之上的协议,所以他可以支持很多不同异构系统的网络互联(比如,Linux,Solaris,Windows等)。

微软已经将SMB改名为公共因特网文件系统(CIFS,Common Internet File System ),并打算把它设计为Internet的标准协议。这在一定程度上是由于它想与最初的基于NetBIOS的SMB保持一定的距离。NetBIOS是 Windows 网络的一个伟大的工具,Microsoft使用NetBIOS实现了一个网络文件/打印服务系统,但是为LAN设计的它却注定了不能路由。 Samba执行了SMB/CIFS的一个版本,这个版本在很大程度上与大多数的Windows版本兼容。但是,无论是从Windows连接到Linux还是从 Linux连接到Windows机器,Samba系统对于实现文件和打印服务来说总是很稳定的。我们可以通过Windows的网络邻居来轻松访问安装了 Samba的UNIX/LINUX服务器。(更多的文档见www.samba.org

二、samba配置操作

1、配置samba的配置文件位于/etc/samba目录下:

[root@redhat hyk]# cd /etc/samba/
[root@redhat samba]# ll
total 32
-rw-r--r--    1 root     root           20 Mar 14  2003 lmhosts
-rw-------    1 root     root         8192 May  8 16:07 secrets.tdb
-rw-r--r--    1 root     root        11326 Feb 13  2006 smb.conf
-rw-------    1 root     root         2246 Aug 22 00:24 smbpasswd
-rw-r--r--    1 root     root          111 Aug 22 00:24 smbusers

smb.conf文件保存了samba的参数配置,具体参数意义清参看附录:samba参数参考目录
smbpasswd文件存放了samba的用户数据信息,文件结构类似于unix系统的/etc/passwd

2、samba的配置命令位于/user/bin目录下

[root@redhat bin]# ll smb*
-rwxr-xr-x    1 root     root         2036 Mar 14  2003 smbadduser
-rwxr-xr-x    1 root     root      1002136 Mar 14  2003 smbcacls
-rwxr-xr-x    1 root     root       559800 Mar 14  2003 smbclient
-rwxr-xr-x    1 root     root       360572 Mar 14  2003 smbcontrol
-rwxr-xr-x    1 root     root       492184 Mar 14  2003 smbmnt
-rwxr-xr-x    1 root     root       504056 Mar 14  2003 smbmount
-rwxr-xr-x    1 root     root       967384 Mar 14  2003 smbpasswd
-rwxr-xr-x    1 root     root         2293 Mar 14  2003 smbprint
-rwxr-xr-x    1 root     root       491896 Mar 14  2003 smbspool
-rwxr-xr-x    1 root     root       363480 Mar 14  2003 smbstatus
-rwxr-xr-x    1 root     root         4899 Mar 14  2003 smbtar
-rwxr-xr-x    1 root     root       490680 Mar 14  2003 smbumount

smbadduser 增加用户
smbpasswd 修改用户密码
smbstatus 察看samba状态(包括版本号)

3、web页面管理配置工具swat

swat是GUI的WEB页面管理方式,提供了几乎所有的参数配置,状态查看等功能。在浏览输入:http://x.x.x.x:901 ,输入管理员账号密码后进入web管理页面。

三、附录:samba参数参考目录
一.全局参数
1. 基本参数
workgroup
说明:这个参数用来指定samba所要加入的工作组,另外如果在设置了security=domain,则workgroup可以指定域名。例如:
workgroup = UEC
指明工作组为UEC
netbios name
说明:这个参数指定samba的NetBIOS名,可以不设置,samba将会使用机器的DNS名的第一部分,如果你的机器的DNS名是host1.domain,就用host1。
例如:
netbios name = GCP
指定NetBios名为GCP
server string
说明:这个参数指定在浏览列表里的机器描述,和MS WINDOWS 里配置网络时的描述是一样的。可以是任何字符串。也可以不填,samba会用缺省的 samba %v,即samba 尾随它的版本号,不过如果要模仿NT象一点的话,可以填一下。例如:
server string = UEC File Server
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密码文件进行验证。一般samba的应用基本都设定为yes: encrypt passwords = yes。
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就根据这个数目对接收到的密码进行大小写重组,以重组过的密码尝试验证密码的正确性。这个值越大,组合的次数就越多,验证时间就越长,安全性也越低!
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 相反是指定那些机器不能访问,格式一样。
3.日志记录参数
log file
说明:这个参数指定日志文件的名称,路径一般放在/var/log/samba,可以在文件名后加个宏%m表示对每台访问samba的机器都单独记录一个日志文件。
例如: log file = /var/log/samba/log.%m,
如果host1、host2这台机器访问过samba,就会留下log.host1、log.host2这两个日志文件。
max log size
说明:这个参数指定最大日志文件的大小,以KB为单位。
例如: max log size = 50k
4.协议参数
announce version
说明:指定服务器的宣告版本号,默认是4.2,如果在WINDOWS的网上邻居里查看samba服务器的属性,就可以看见在类型一行里有 Windows NT 4.2 Server 的字样。一般不要去更改它,如果你要让samba模拟NT像一点的话,可以改成4.0。
5. 计算机浏览参数
os level
说明:os level 的值是个整数,决定了nmbd是否有机会成为本地广播区域的工作组里的本地主浏览器,默认值是零,零则意味着nmbd失去浏览选择。如果要nmbd更有机会成为本地主浏览器的话,可以设为65。
preferred master
说明:这个参数指定nmbd是否是工作组里的首要的主浏览器,如果指定为yes,nmbd在启动的时候就强制一个浏览选择。指定该参数为yes时最好把 domain master 也指定为yes。用这个参数的时候要注意的是在samba服务器所在的子网上如果有其它的机器(不管是WINDOWS NT还是另一个samba服务器)也指定为首要的主浏览器时,这些机器都会因为争夺主浏览器而在网络上广播,引起不必要的网络性能下降。
local master
说明:这个参数指定nmbd是否试图成为本地主浏览器,默认值是yes,如果设为no则samba服务器就永远都不会成为本地主浏览器。但即使设置了yes,也不等于samba服务器就会成为本地主浏览器。只是参与本地主浏览器选择。
domain master
说明:这个参数让nmbd成为一个域浏览器,取得各本地主浏览器的浏览列表,并将整个域的浏览列表递交给各本地主浏览器。默认值是no。如果网络上已经有一台NT PDC,就不要把这个参数设为yes,争不过NT PDC的。
另外,如果你对计算机浏览服务不是很清楚的话,可以参考NT网络管理资料。
6. 共享资源设置参数
comment
说明:就是对共享的描述,可以是任意的字符串
例如:comment = Share Stuff 。
path
说明: path是提供共享服务的路径,可以用%u %m这样的宏来代替路径里的unix用户和客户机的Netbios名。
例如:如果我们不打算用home段做为客户的共享,而是在/home/share/ 下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。
用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,可以这样写 path:path = /home/share/%m 。
writeable
说明:指定共享路径是否可以写,值是yes或no
browseable
说明:指定共享是否可以浏览,默认是yes
available
说明:指定共享资源是否可用,默认是yes,设为no则关闭该资源的共享服务,用户无法连接到该资源上。
exec 和 postexec
root preexec 和 root postexec
说明:指定在用户与共享资源在连接和断开时在服务器上执行一个命令,这两对参数很有用,区别是root preexec 和root preexec 是以root的权限运行。
打印共享还有些专用的打印参数,阐述如下:
load printers
指定在samba启动时是否自动把printcap文件里的所有打印机加载,从而可以在浏览清单里看到所有的打印机,默认是yes
printable
指定用户能不能打印,默认是no,要让一个打印共享可以让用户使用,必须设为yes
print name
打印机名
printer driver
打印机的驱动类型,这个参数可以让WINDOWS知道远程打印机上的类型,具体的值可以参考在WINDOWS里安装打印机出现选择打印机类型时的打印机类型。比如Espon LQ1600K打印机:
printer driver = Espon LQ-1600K
以上就是samba的一些常用的配置,通过这些配置参数,我们已经可以建立起一个一般应用的文件服务器。虽然还有很多参数没有提到,但samba本身可以用缺省值。
启动samba,可以用/usr/sbin/samba start来启动samba,也可以用ntsysv来启动。
二、samba 高级参数
下列所介绍的是一些高级参数的配置,这些参数如果应用得当,可以更加灵活地在网络上应用samba
1.宏
在基本配置里有提到一些参数的可以尾随%u、%m,这是samba里定义的宏,宏用百分号后面跟一字符表示,在具体运作的时候就用实际的参数来代替。常用的宏有
%S = 当前服务名
%P = 当前服务的根路径
%u = 当前服务的用户名
%g = 给定%u的所在的主工作组名
%H = 给定的%u的宿主目录
%v = Samba 版本号
%h = 运行Samba的机器的主机名
%m = 客户机的NETBIOS名
%L = 服务器的 NetBIOS 名
%T = 当前的日期和时间
灵活地应用宏可以很方便地管理比较复杂的网络。
2.一些常用高级配置参数
2.1 全局参数
config file
说明:这个参数是全局参数,可以让你用另一个配置文件覆盖缺省的配置文件,如果文件不存在,该项无效。这个参数非常有用,也使得samba的配置更灵活,让一台Linux服务器模拟多台不同配置的NT 服务器,满足不同的需求。
比如,您想让网络上的某台名字是host1的机器用它自己的配置文件,先在/etc/下为host1配置一个名为smb.conf.host1的文件,在缺省的smb.conf里加这行:
config file = /etc/smb.conf.%m
这样,当host1请求连接的时候,smb.conf.%m被替换成smb.conf.host1,对host1来说,它所看到的samba就是由smb.conf.host1定义的。而其它机器还是用smb.conf。
deadtime
说明:这个参数值是个整数,单位是分钟,用于切断一个不活动的连接。当一个没有打开任何文件的连接的不活动的时间超过datetime指定的的时间后, samba就自动切断这个连接。这个参数可以节省服务器的资源消耗,尤其是在有大量连接的情况下。默认的值是零,零代表samba不自动切断任何连接。
time server
说明:这个参数让nmbd成为WINDOS客户的时间服务器。默认是no。
2.2 共享资源参数
admin users
这个参数用来赋予用户对共享资源的管理员权限,意味着这些用户可以root一样进行所有的文件操作,当然只局限在这个共享资源上。这个选项要慎用,因为任何这样的用户可以对该共享上的文件随意进行操作。缺省是admin users = no。
例如:
admin users = Su_27
那么Su_27这个用户就是这个共享资源的管理员。
valid users
说明:指定共享资源的有效用户,即允许访问该资源的用户。
例如:valid users = user1, user2
那么user1和user2是有效用户
invalid users
说明:和valid users 相反,指定那些用户不可访问这共享资源。
max connections (S)
说明:指定一个服务的最大连接数目,用户连接到该服务时如这个服务的连接数目已经达到指定值,这个新的连接请求将被拒绝。
例如: max connections = 100
最大连接数为100
以上是一些samba的高级配置参数,但samba的参数还有很多,如文件创建权限设定,代码页,文件名大小写是否敏感等,可以参考samba的官方文档。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/armot/archive/2007/04/20/1572634.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值