分类: BSD
2008-04-03 17:02:21
# pkg_add samab-2.0.2.tgz # cd /usr/local/etc # cp smb.conf.default smb.conf # cd rc.d # cp samba.sh.sample samba.sh # sh samba.sh Samba |
为了正常使用samba,必须对smb.conf进行配置,可以直接编辑配置文件,或者使用图形设置界面进行设置。由于samba是一个非常流行的SMB服务器,因此存在多种图形界面的配置程序,samba2.0本身提供的 swat就是其中的一种,它作为一个Web服务器,可以通过WWW浏览器来配置smb.conf。但是即使能通过图形界面进行设置,但手工编辑smb.conf仍然是最基本的设置方式。
如同上面的执行命令中所显示的,缺省的smb.conf就正常启动samba服务器,只是缺省配置并不一定适合用户的具体设置情况。例如域(或工作组)名字缺省为MYGROUP,而实际网络中则不一定使用这个名字。下面的命令使用Samba提供的smbclient客户程序,查看缺省smb.conf启动的samba服务器的设置。
# smbclient -L localhost -U% Added interface ip=202.102.245.60 bcast=202.102.245.255 nmask=255.255.255.0 Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.0.2] Sharename Type Comment --------- ---- ------- IPC$ IPC IPC Service (Samba Server) ascii Printer lj5gray-a4-ascii-mono lp2 Printer lj5gray-a4-auto-mono lj5gray-a4-ra Printer lj5gray auto raw wb Disk Home Directories Server Comment --------- ------- fbsdsrv Samba Server Workgroup Master --------- ------- MYGROUP |
从这个输出结果可以看出,缺省使用的工作组为MYGROUP,提供共享的资源有IPC$,用户个人目录wb,以及系统中存在的多个打印机资源。samba使用计算机的hostname生成它NetBIOS名字fbsdsrv。
最一般的情况下,只需要将工作组名字改动为与具体网络使用的名字相一致,就能使得使用Windows计算机的客户正常访问samba服务器了,用户在登录Windows的时候,使用自己在samba所在的Unix服务器上的用户名和口令登录,那么就可以访问samba服务器上自己的个人目录及打印机资源了。
FreeBSD将Samba的文档安装到/usr/local/share/doc/samba目录下,一些设置文件的例子被安装到/usr/local/share/examples/samba目录下,这些文档和例子对于理解SMB协议,正确设置Samba都是非常重要的参考资料。
启动samba的基本方法是使用Package中提供的shell程序 ── 安装在/usr/local/etc/rc.d目录下的samba.sh。这个程序将会以守护进程的方式启动smbd和nmbd两个守护进程(启动时使用-D参数)。这样在计算机启动时就能自动启动samba服务器。
除了直接启动之外,还可以使用超级服务器inetd来启动samba,这时inetd.conf中应该包括以下行:
netbios-ssn stream tcp nowait root /usr/local/sbin/smbd smbd |
其中netbios-ssn和netbios-ns是在/etc/services中定义的两个用于NetBIOS 的端口,一个用于NetBIOS会话管理,一个用于NetBIOS名字解析。当这两个端口就被inetd占据之后,使用上面启动脚本或直接启动smbd和nmbd就无法成功。但由于inetd效率较低,启动服务器较慢,这种配置只适合偶尔共享自己的文件的计算机,不适合会被频繁访问的文件/打印服务器。
当使用samba.sh启动samba之后(或者使用inetd来启动samba),就可以从Windows 客户机的网络邻居中发现这个FreeBSD服务器。或者使用net use命令直接访问服务器。
由于一般在Windows中没有配置WINS服务器,那么就可能会出现名字解析的问题。为了帮助进行名字解析,可以在Windows的lmhosts文件中增加samba服务器的NetBIOS名字和IP配置,帮助Windows 解析名字。或者使用samba作为NBNS服务器。
samba在/var/log下留下了大量的访问日志文件,日志文件的名字在smb.conf中定义。通常日志文件以log开头,以用户名或计算机的NetBIOS为后缀,例如一台计算机NetBIOS名字为cca,那么它访问这台服务器的日志文件就为log.cca。