Samba是由Andrew Tridgell在1991年(和Linux诞生的时间接近)制作的,当时他使用的是DEC的Pathworks网络,但是他发现无法同时使用Sun的NFS协议(正如我们前面介绍的,NFS是一个非常有用的网络协议),于是,连Socket(套接字)都不熟悉的他开始尝试自己在PC机上实现NFS,经过不断的摸索,他终于在自己的计算机上实现了NFS,采用的网络协议是NetBIOS(因为NetBIOS是公开的,可以合法地得到)。到了1992年1月,他开发出了0.1版,称为Server 0.1,随后又开发了一段时间,由于得到了X终端,他放弃了进一步的开发。直到1992年底,从一封电子邮件中,Andrew Tridgell获知了Linux,一个爱好者将Server 1.0转换到了Linux上,很快,人们发现这个程序可以直接使用,应用户的要求,Adrew Tridgell开始在Linux上开发,同时他发现smb-server已经被别人注册了,所以就只好起名为Samba,这就是Samba这个名称的由来。读者如果感兴趣的话可以访问http://www.ssc.com/lj/issue7/samba.Html了解这段历史。
1. Samba服务能够做什么
在网络上共享目录,就好像一台文件服务器一样。
在网络上共享打印机。
决定每一个目录由谁来使用,可以让一个人、某些人、组和所有人访问。
决定打印机由谁来使用,可以让一个人、某些人、组和所有人使用。
可以看出,安装和配置好了Samba服务器后,Linux就可以Windows网络中的文件和打印服务器了。
2. Samba的安装
我们假设用户在安装Red Hat Linux的时候,已经选择了安装Samba(如果安装的时候你选择了everything,那么你的计算机上已经有了Samba),如果没有安装,可以从光盘的RedHat/RPMS目录下安装,也可以到FTP://metalab.unc.edu/pub/Linux/system/network/samba/去寻找最新版本,安装的时候,请参考samba-HOWTO和软件提供的帮助文件。
3. Samba软件包的内容
Samba是SMB客户程序/服务器软件包,它主要包含以下程序:
SMB服务器smbd:为SMB客户机如Windows 9x/NT等提供Windows NT和Lan Manager风格的文件和打印服务。
Netbios(RFC1001/RFC1002)名字服务器nmbd:可以提供浏览支持。用户甚至可以用Samba作为局域网的主浏览服务器。
SMB客户程序smbclient:类似ftp程序,用以从UNIX、Netware和其他操作系统上访问SMB服务器上的资源(如文件、打印机)
SMB客户服务程序的tar扩展smBTar:用以方便地拷贝SMB服务器上的文件。
在Linux上,Samba还提供了挂卸SMB文件系统的工具程序smbmount(smbmnt)和smbumount。
samba的核心是smbd和nmbd,如果你用ps –ef可以看到这两个进程,那么你的机器已经在运行samba了。Samba服务的状态查询、启动和关闭:
# /usr/bin/smbstatus
# /etc/rc.d/init.d/smb stop
# /etc/rc.d/init.d/smb start
4. 定制Samba
这部分内容介绍如何配置Samba,主要就是如何调整/etc/smb.conf文件,所以请现在备份一下你的smb.conf文件。原始的smb.conf文件如下,我们在后面的配置过程中,会把相关的部分拿出来单独介绍,为了方便,我们把原始文件的注释部分用中文代替。
smb.conf文件的作用和语法类似于Windows 3.x里面的ini文件,该文件现在一般位于/etc目录下。
smb.conf文件的语法格式包含了许多区段(section),每一个区段都有一个名字,用方括号括起来,其中比较重要的区段是[global]、[homes]和[printers],[global]区段定义了全局参数,[homes]区段定义了用户的主目录文件服务,[printers]区段定义了打印机共享服务。
[1] [2] [3] 下一页
每一个区段里面都定义了许多参数,格式为“参数名 = 参数值”,等号两边的空格被忽略,参数值两边的空格也被忽略,但是参数值里面的空格有意义。如果一行太长,用“”进行换行。
# Samba的配置文件,用户应该在修改前仔细阅读smb.conf(5)的手册页。
# Samba有许多选项,大多数没有列在本文件中(手册页约130页)
#
# 所有以分号;和井号#开头的行都表示注释,这些行都被忽略,本文约定,
# 文件中用井号表示评论,分号表示可以激活的选项
#
# 当你修改本文件后,应该运行testparm命令以检查语法错误
#
#=======================设置全局变量的区段====================================
[global]
# workgroup = NT的域名或者工作组名
workgroup = MYGROUP
# server string 等价于NT的描述域(description field)
server string = Samba Server
# 下面的选项对于安全十分重要,它限制连接到当前服务器的本地网络的IP地址。
# 下面的例子中,只允许两个C类网络地址和‘loopback'界面访问SMB服务器。
# 更多信息,查看smb.conf的手册页。如果该选项要激活,把分号去掉。
; hosts allow = 192.168.1. 192.168.2. 127.
# 自动加载打印机,而不是每次单独设置
printcap name = /etc/printcap
load printers = yes
# 除非你的打印系统的类型不标准,否则不用设置下面的参数,当前支持的打印
# 系统有:bsd, sysv, plp, lprng, aix, hpux, qnx
; printing = bsd
# 如果希望建立客户账号,激活此选项,同时把此账号加入/etc/passwd文件中
# 否则使用用户"nobody"作为客户账号
; guest account = pcguest
# 对从不同机器建立的连接建立不同的日志文件
log file = /var/log/samba/log.%m
# 限制日志文件的最大尺寸(单位是KB)
max log size = 50
# 安全模式,大多数用户希望用户级的安全,
# 详细信息参考security_level.txt文件。
security = user
# 当security = server时使用口令服务器选项
; passWord server =
# 输入口令应该和真实口令的前面Password Level个字符相符合
# 输入用户名应该和真实用户名的前面username level个字符相符合
; password level = 8
; username level = 8
# 用户可能需要使用口令加密,在使用下面的选项之前,请仔细
# 阅读ENCRYPTION.txt,Win95.txt和WinNT.txt文件。
# 用户密码文件可以存放在/etc/passwd文件中
; encrypt passwords = yes
; smb passwd file = /etc/smbpasswd
# 如果要允许在Windwos中的密码改动更新Linux系统的密码,就需要下面的选项.
# NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above.
# NOTE2: You do NOT need these to allow workstations to change only
# the encrypted SMB passwords. They allow the Unix password
# to be kept in sync with the SMB password.
; unix password sync = Yes
; passwd program = /usr/bin/passwd %u
; passwd chat = *New*UNIX*password* %n *ReType*new*UNIX*password* %n *passwd:*all*authentication*tokens*updated*sUCcessfully*
上一页 [1] [2] [3] 下一页
# Unix用户可以映射成不同SMB用户名
; username map = /etc/smbusers
# 对每个不同的客户机使用不同的配置文件,%m代表客户机的Netbios名字
; include = /etc/smb.conf.%m
# 下面的选项可以提高服务器的性能,特别是使用smbmount挂卸SMB文件系统时。
# 参考speed.txt文件。
socket options = TCP_NODELAY
# 如果SMB服务器使用了多个网卡,必须在下面列出并进行配置
; interfaces = 192.168.12.2/24 192.168.13.2/24
# Configure remote browse list synchronisation here
# request announcement to, or browse list sync from:
# a specific host or from / to a whole subnet (see below)
; remote browse sync = 192.168.3.25 192.168.5.255
# Cause this host to announce itself to local subnets here
; remote announce = 192.168.1.255 192.168.2.44
# 浏览器控制选项:如果你不想让Samba服务器成为网络中的主浏览器,
# 那么local master设置为no,否则设置为yes(此时将参加主浏览器的竞争)
; local master = no
# 竞争主浏览器时对自身的评价
; os level = 33
# Domain Master specifies Samba to be the Domain Master Browser. This
# allows Samba to collate browse lists between subnets. Don't use this
# if you already have a Windows NT domain controller doing this job
; domain master = yes
# Preferred Master causes Samba to force a local browser election on startup
# and gives it a slightly higher chance of winning the election
; preferred master = yes
# Use only if you have an NT server on your network that has been
# configured at install time to be a primary domain controller.
; domain controller =
# Enable this if you want Samba to be a domain logon server for
# Windows95 workstations.
; domain logons = yes
; domain controller =
# Enable this if you want Samba to be a domain logon server for
# Windows95 workstations.
; domain logons = yes