Samba是一个功能强大的软件工具,它可以让基于UNIX操作系统的计算机系统和基于Windows的
计算机系统相互合作,之所以能做到这一点,是因为Samba能够理解微软公司使用的联网协议SMB(
Session Message Block,任务消息块).从系统管理员的观点看,这意味着不需要在网络中所有的
Windows客户机上都安装NFS服务就可以使用一个基于UNIX操作系统的服务器,而客户机则可以使用
自己原来的方式与服务器进行通信,这样减少了用户在系统管理方面的劳动强度,在网络无缝集成方面
也可以多一些选择.Samba属于GNU Public License(简称GPL)的软件;因此,任何用户都可以
合法且免费地使用它。
Samba 的主要功能如下:
(1)提供Windows NT风格的文件和打印机共享 Windows 95、Windows 98、Windows NT等以
据此共享UNIX等其他操作系统的资源,外表看起来和共享NT的资源没有区别。
(2)解析NetBIOS名字IP 在Windows网络中,为了能够利用网上资源,同时自己的资源也能被
别人所利用;各个主机都定期地向网上广播自己的身份信息。而负责收集这些信息,为别
的主机;提供检索情报的服务器就被称为浏览服务器.Samba可以有效地完成这项功能,在
跨越网关的时候Samba还可以作WINS服务器使用。
(3)提供SMB客户功能 利用Samba提供的smbclint程序可以从UNIX下以类似于 FTP的方式访
问Windows的资源。
(4)备份PC上的资源 利用一个叫smbtar的shell 脚本,可以使用 tar 格式备份和恢复一台
远程 Windows上的共享文件。
(5)提供一个命令行工具,在其上可以有限制地支持NT的某些管理功能。
九月十五号,samba公司发布了samba3.0的版本,鉴于以前samba有诸多问题,于是我将我的samba服务
进行了升级,由于源码刚发布不久,它的rpm包还没有(抱歉我的系统是redhat),于是我选择了用tar包
来安装.源代码包可以从samba公司的官方网站http://www.samba.org上获得.
1.准备工作
我的操作系统是redhat9.0
samba文件放置的目录为/home/user/samba-3.0.0.tar.gz
2.编译、安装
首先进入/home/user目录下,执行解包指令
[root@linux user]# tar zxvf samba-3.0.0.tar.gz
然后进入samba-3.0.0目录下,在这个目录中有一个whatsnew.txt的文件,这个文件记录了samba3.0.0
版本比以前几个版本修正的错误,如果英文不成问题的情况下,建议看看.在此不在赘述,然后直接进入source
目录下,samba在配置的时候提供了很多的参数,我们一般用到的就是
--with-smbmount
--prefix=
好了,我们继续来编译
[root@linux user]# ./configure --with-smbmount --prefix=/usr/local/samba
执行make指令
[root@linux user]# make
这样就可以创建二进制程序和手册页了,然后再执行make install
[root@linux user]# make install
这样就将安装文件安装完了
3.配置
首先要将源代码包中/examples/smb.conf.default文件拷贝到/usr/local/samba/lib下,并将其改名为smb.conf,
然后通过testparm程序来测试smb.conf文件,如果testparm运行OK就会列出可装载的服务项,否则给出出错信息.
然后进入/usr/local/samba/lib目录下,去修改smb.conf配置文件,如果只是实现简单需求的话,只需要更改相应的几个简单的
选项即可:
security = share
找到security的地方,将默认security=user改为share,即共享
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = @staff
然后再找到上面配置的地方,将前面的;号去掉,将path=处改为你希望共享的目录.
以上只是最简单实现samba的方法,如果还需要其他的需求,可以根据自己的需求进行相应的设置
4.启动服务
这是一个需要注意的地方,在samba3.0以前的版本,包括2.2.5,2.2.6,2.2.7,2.2.8和2.2.8a都是通过执行
/usr/local/samba/bin/smbd -D
/usr/local/samba/bin/nmbd -D
来启动服务,但是3.0.0的版本却将守护进程smbd和nmbd放到/usr/local/sambd/sbin/的目录下(更确切的说应该是samba3.0
将命令和系统服务的守护进程进行了分离来提高了它的安全性),
这时就需要这样来启动服务了
/usr/local/samba/sbin/smbd -D
/usr/local/samba/sbin/nmbd -D
如果希望开机时即运行samba服务,可以将服务启动的指令写道/etc/rc.d/rc.local的文件中,并在指令后边加入&,来将
程序放到后台运行.例如:
[root@linux lib]# vi /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
Touch /var/lock/subsys/local
/usr/local/samba/sbin/smbd -D &
/usr/local/samba/sbin/nmbd -D &
好了,一台samba服务器就这样设置完了.呵呵,不麻烦吧.
dawei@2003.10.12