软体 samba( 二 )

)因此 Tridgwell就去申请了 SMBServer ( Server Message Block 的简写 ) 这个名字来做为他撰写的这个软体的商标,可惜的是,因为SMB 是没有意义的文字,因此没有办法达成注册 。既然如此的话,那幺能不能在字典里面找到相关的字词可以做为商标来注册呢?翻了老半天,呵呵!这个SAMBA刚好含有 SMB,又是热情有劲的拉丁舞蹈的名称,不如就用这个名字来做为商标好了 。如此,这成为我们今天所使用的SAMBA 的名称由来 。套件安装事实上,SAMBA 的安装一点也不难,而且在各主要 distribution上面都有提供,也都大同小异,所以,比较建议使用distribution 所提供的 RPM 档案来安装!当然,也可以自行使用Tarball 来安装!①使用 RPM来安装使用 RPM 来安装真是一点都不难 。不过,要注意安装的套件名称,因为不同的distribution 对于 RPM 档案的命名都不太一样!举例,Red Hat 9 对于SAMBA 这个伺服器总共需要至少三个套件,分别是:samba:这个套件主要包含了 SAMBA 的主要 daemon档案 ( smbd 及 nmbd )、 SAMBA 的档案档 ( document )、以及其它与 SAMBA 相关的logrotate 设定档案及开机预设选项档案等;samba-common:这个套件则主要提供了 SAMBA 的主要设定档(smb.conf) 、 smb.conf 语法检验的测试程式 ( testparm )等等;samba-client:这个套件则提供了当 Linux 做为SAMBA Client 端时,所需要的工具指令,例如挂载 SAMBA 档案格式的执行档 smbmount等等 。不过,在 Mandrake 9.1 当中,则将 samba 这个套件又分为 samba-server与 samba-doc 两个套件,所以在 MDK 9.1 则有四个套件需要安装:samba-server, samba-doc, samba-common, samba-client。②RPM 的安装:拿出光碟,mount 上他,然后再将里头的samba 套件给他 RPM 上去即可!在最后检验的时候,您的系统应该有点像底下这个样子(以Red Hat 9 为例):[root@testroot]#rpm -qa | grep sambasamba-common-2.2.7a-8.9.0redhat-config-samba-1.0.4-1samba-2.2.7a-8.9.0samba-client-2.2.7a-8.9.0注意,上面显示的例子是Red Hat 9 的档案,其中那个 redhat-config-samba 是 Red Hat额外提供的设定功能,可以不用安装 。③使用Tarball 来安装一般来说,因为各个 distribution 提供的 SAMBA 的功能都差不多,所以实在没有必要使用Tarball 来进行额外的安装与设定,不过,如果您还是想要自己建置自己的 SAMBA的话,可以到 SAMBA 的官方网站上下载 samba 的原始程式代码,然后在自己的机器上面编译 。[root@testroot]#wget http://ftp.XX/Unix/Samba/samba-2.2.8a.tar.gz[root@testroot]#cd /usr/local/src[root@testsrc]# tar -zxvf /root/samba-2.2.8a.tar.gz这个时候会有一个目录跑出来:/usr/local/src/samba-2.2.8a[root@testsrc]# cd samba-2.2.8a #(在这个目录中察看一下README )[root@testsamba-2.2.8a]# cd source[root@testsource]# ./configure --prefix=/usr/local/samba\> --with-automount--with-smbmount --with-pam \> --with-mmap--with-quotas --with-libsmbclient1. 请先以 ./configure--help 察看一下 configure 的一些相关的参数用法2. 如果发生任何错误,请不要往下进行make 的动作,因为还是不对的!3. 万一发生任何错误时,通常是由于一些函式库找不到的缘故,请参考此目录下的 config.log这个档案的内容,里面会记录一些错误的历程 。[root@testsource]#make #(开始进行编译!)这个过程会花一些时间,因为他会将原始码(source code) 刚刚设定并以 gcc 这个compiler 来进行编译喔!所以会花一些时间[root@testsource]# make install将刚刚编译完成的可执行binary 档案安装到 /usr/local/samba 里面在这个例子当中,未来您在设定SAMBA 时,必需要到 /usr/local/samba 当中一般来说,除非 Linux distribution 已经相当的老旧了 (例如 Red Hat6.x 以前的版本),并且在旧的系统上面正在正常的运作一些服务,而仅想要增加SAMBA 的服务,那就只好使用 Tarball 的方式来安装SAMBA,否则的话,蛮强烈的建议直接以 RPM 的方法来安装您的SAMBA 伺服器软体即可!因为既简单方便,又容易统一设定 。Server端的设定由于 SAMBA 几乎一定包含在各个主要的 Linux distribution 当中,并且不同版本之间的功能差异也不是很大,所以,底下的介绍我们都以RPM 安装的 SAMBA 套件来进行说明 。当然啦,即使同样是 RPM 的档案,但是在各个Linux distribution 当中,SAMBA 的主要档案放置的目录还是可能会不太一样 。不过,因为SAMBA 的设定档档名都是不变的 ( smb.conf ),所以,虽然底下我们是以Red Hat 9 为範例,不过,您依旧可以使用 locate, find, whereis 等指令在不同的distribution 系统下找出 SAMBA 主要的设定档与执行档喔! ( 这就是为什幺我们喜欢教大家使用vi 以及纯文字模式学习 Linux 的原因,因为一法通,万法通啊!) 另外,我一开始的範例当中都是针对没有设定防火墙的情况下所进行设定与测试,如果您的环境里面已经有架设防火墙的话,那幺您应该要先了解防火墙的架构,并将SAMBA 需要的 port 给他开放,否则很难测试成功喔!或者直接察看本章节较后面专门谈安全的部分,尤其是iptables 与 /etc/hosts.allow(deny)这部份喔!套件结构我们这里以 Red Hat 9 的 SAMBA 套件来介绍他相关的一些设定档与执行档,不过,如果您的distribution 并不是 Red Hat 9,那也没有关係,因为都是大同小异的啦!善用locate 这个指令去搜寻喔!配置档案在较早期的版本中,SAMBA 的设定档都直接放置在 /etc 底下,后来的版本则将设定档通通放置到/etc/samba 底下去了 ( 有的 distribution 放在 /etc/smb 有的则是 /etc/samba.d,请使用 locate 搜寻! ) 。在 /etc/samba 底下的几个重要的设定档有: /etc/samba/smb.conf:这个就是SAMBA 最主要的设定档了!在较为简单的设定当中,这也是唯一的一个设定档!此外,这个档案本身就含有相当丰富的说明,所以,在设定之前,请使用vi 好好的详细的观看一下这个档案吧!这个设定档主要的设定分为两部份,分别是[global] 这个设定主机功能的项目,以及接下来的每个分享出去的目录的属性设定 。/etc/samba/lmhosts:这个档案的主要目的在对应NetBIOS name 与该主机名称的 IP,事实上,他有点像是 /etc/hosts 的功能!只不过这个lmhosts 对应的主机名称是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!由于目前SAMBA 的功能越来越强大,所以通常只要您一启动 SAMBA 时,他就能自己捉到 LAN里面的相关计算机的 NetBIOS name 对应 IP 的信息,因此,这个档案通常可以不用设定了 。/etc/samba/smbpasswd:这个档案预设并不存在 。它是SAMBA 预设的使用者密码对应表 。当设定的 SAMBA 伺服器是较为严密的,需要使用者输入账号与密码后才能登入的状态时,使用者的密码预设就是放置在这里(