荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: ykwch.bbs@bbs.cqupt.edu.cn (心蓝), 信区: Linux
标  题: Samba的使用
发信站: 幽幽黄桷兰 (Fri Dec 13 16:03:34 2002)
转信站: SZU!news.tiaozhan.com!news.happynet.org!CQUPT

Samba的使用
http://www.linuxaid.com.cn 01-06-13 18:32 1956p dracula
----------------------------------------------------------------------------
----
    在我们常用的局域网中,有许多计算机的操作系统是Windows,并且有一部分的系统
是Linux。如何使用两个不同的系统之间实现文件的共享,这个问题经常会发生。除了使
用FTP、NFS、Telnet之外,在Linux上构架SMB服务也是一种非常高效、简捷的选择。
一、SMB的介绍
    SMB--Server Messages Block,信息服务块,是一种在局域网上共享文件和打印机
的一种协议,它为局域网内的Windows和Unix系统提供文件及打印机等资源的共享服务。

    SMB的工作原理是让Netbios与SMB这两种协议运行在TCP/IP的通信协议上,并且使用
Netbios nameserver让Linux机器在Windows的网络领导上被看到,这样就可以在系统间
相互访问了。这种协议最早是由Microsoft和Intel在1987年开发实现的。
    在Linux上运行SMB的软件很多,最常用的是samba和TAS(Total Net Advanced Serv
er)。Tas是由Syntax公司开发的产品,是一种强大的client/server系统,用来解决不同
操作系统间的共享问题。它能对不同类型的SMB客户提供基于SMB的连接,包括LAN Mana
ger,LAN Server,DEC pathworks等。但这么强大的功能,自然价格也不便宜。
    samba是用来实现SMB的又一种软件,由澳大利亚的Andrew Tridgell开发,是一种在
Linux(unix)环境下运行的免费软件。通过它,Linux和Windows之间可以进行文件的传输
,实现打印机的共享:
    ·共享Linux磁盘给Win95/NT
    ·共享Win95/NT磁盘给Linux机器
    ·共享Linux打印机给win95/NT
    ·共享win95/NT打印机给Linux机器。
二、Samba的安装
    Samba这套软件中包含了Samba服务器程序和samba客户程序,将samba安装配置好以
后,可以在网络间实现资源的共享。随着RedHat 6.x发布的samba的版本是2.0.3,挂起
光盘,然后使用RPM命令:
      #mount /dev/cdrom /mnt/cdrom
      #cd /mnt/cdrom/RedHat?RPMS
      #rpm -Uvh samba-2.0.3-8.i386.rpm
    你也可以在ftp://ftp.samba.org/pub/samba下载新的版本,如果下载的是RPM的版
本,就照上面的方法安装。如果得到是tar软件包,则必须手动编译了。
    在得到samba-2.x.x.tar.gz后,随便将其拷贝到一个目录中.ie./tmp。然后使用下
面的命令将其展开:
      #tar zxvf samba-2.x.x.tar.gz
    然后会产生samba-2.x.x这个目录,请先阅读目录中的README文件,如果想看man p
age的话,可以到docs/manpages目录中执行:
      #man ./filename
    这样,可以得到一些信息。
    由于samba可适用于多种Unix系统,所以下一步工作就是将其source/目录中的Make
file文件修改成你需要的,找出其中定义Linux的部分,然后将前面的"#"号删除。如果
要在装有shadw passwor和quota的Linux系统中安装samba,则应该将Makefile文件中的
下面部分的注释号"#"去掉:
      #FIAGSM=-03 -M486 -DLINUX-DSHADOW_PWD-DQUOTAS
      #LIBSM=-lshadow
    并且在srouce目录中执行:
      #ln -s /usr/include/linux/quota.h /usr/include/sys/quota.h
      #ln -sf /usr/src/quota-1.50 quota
    如果在/usr/src目录下没有quota-1.50请自己去下载其源程序,因为在编译samba时
要使用到quota的源程序。
    注意,无论选取哪一种系统,都应该保证Makefile中只有一种操作系统起作用,否
则samba将无法正确安装。
    修改好了Makefile文件之后,只要在source目录中以root权限执行make命令就可以
了开始编译了:
      #make
    成功之后,会得到好几个可执行文件。但是,运行samba服务器程序或客户程序最需
要的应该是"smbd"和"nmbd",它们是一个samba服务器的守护进程和samba客户机的守护
进程。接下来执行:
      #make install(make revert(删除旧版本并安装新的版本))
    命令来安装samba。
    一般安装在/usr/bin中。而两个守护进程则被放到/usr/sbin目录下。
三、samba的配置
    samba的配置有几中方式,一种是用普通的文字编辑器如vi,joe等将/etc/samba目录
下的smb.conf文件进行修改。另一种方法是使用X-Windows下的SWAT对samba进行配置。
后一种方法比较方便,并且比较适合于初学者,所以着重介绍。
    SWAT在Samba 2.x.x及之后版本中已经存在了它是:Samba Web Administration To
ol的缩写,它可以大大方便Samba的配置。
    在使用SWAT之前,你必须先配置好你的X-windows,使它可以正常工作。然后编辑在
/etc目录下的services文件,找到:
      #swat 901/tcp
    然后将它前面的#号删除。保存services文件。
    这一步是将swat的服务器端口901打开,以提供swat的服务及访问。如果这一步不作
,那么在X-windows下将不能使用swat。
    如果你使用的是Redhat 7.x则
    可以输入命令:
       #setup
    在system services设置中找到"swat",然后在前打*号,以下一个步骤可以跳过了
。修改/etc/inetd.conf,在其中加入:
       swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat
    这行的意思是说明swat程序的位置以及驱动的相关参数。
    重新激活inetd:用ps -auxww|grep inetd找出inetd的PID,然后给予一个HUP的信号
使其重新激活inetd:
       ps -auxww|grep inetd
       kill -HUP xxx(PID号)
    或者并且重新启动。
    然后在X-Windows下,找开浏览器(netscape)然后在地址栏中输入:http://local
host:901/,然后回车。
    然后请用root帐号登录。
    由于Swat界面非常友好,所以一般用户用鼠标就可以设置了。
    下面以一个简单的范例来解释它的用法:
   (1)让一个目录被共享,但用户只能有读的权限,并且只有guest帐号的用户可以访
问;
   (2)让一个Linux的打印机被网络中所有的win95/nt机器共享。
    首先,先选择GLOBALS主图标按钮,然后在其中的workgroup中输入你所在的局域网
中,需要访问你的SMB服务器的机器的工作组名称,比如:mysite。
    接下来的netbios name:这是你的Linux主机在win95/NT中的网络邻居中显示出的名
称:比如:host Server String:这是对SMB服务器的描述,随便输入一些内容:比如:
It's a samba server。
    interface:这是网络界面的设置。注意格式为x.x.x.x/x.x.x.x前面是你的Linux主
机的IP地址,/之后是子网掩码。
    比如:192.168.1.100/255.255.255.0
    接下来的几行可以不管,如果需要进一步深入了解,请察看samba-howto。
然后是guest account:这里是"来宾帐号",你就输入guest。
    host allow和host deny中设置的分别是你特别指定的允许和不允许访问SMB服务器
的机器的IP地址,注意其格式为:x.x.x.x,x.x.x.x。
    如:192.168.1.22,192.168.1.33
    接下来几行不要管,然后是socket optons:
    如果你输入:
       TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    这样可以提高系统的效率,很显然,这是对于TCP/IP协议而言的。请看一下smb的m
an,这不再深究。
    然后点击commit changes,保存结果。
    然后再点击主图标按钮SHARES
    然后输入你所要共享的资源的名称,随便输入一个比如:share
    然后Create Share建立资源。
    comment中输入该共享资源的名称。
    Path:在此输入共享资源的绝对路径。如:/home/guest
    guest accout:在此输入工作站的guest帐号名称,该帐号必须存在!你可以通过:
linuxconf来设置帐号,请查看有关资料,这里不再多讲。
    read only下拉列表框:表示是否只允许读取,如果是Yes选项,则无法写入或删除
文件。
    guest ok下接列表:表示是否允许其它用户以guest方式登录,也就是登录者不一定
要有密码就可以使用该共享资源。如果该共享资源是私人拥有,而且不希望其它人登入
,最好设为No。
    host alow文本框:允许访问你的机器的IP地址,以,分开,也可以203.71.204.来定
义整个C Class网络,如果设有host alow则只有这些机器可以登录,其它一
律拒绝!
    host deny:不允许访问你的机器的IP地址,格式同上,若设有deny则除该机器之外
,则一律允许.
    browseable:表示是否让该资源被windows的网上邻居浏览到。
    available:则是代表是否开放外界联机这个共享资源。
    然后Commit change确认保存。
    然后是PRINTERS主图标按钮
    如果你已经在print tools中成功地设置了打印机,则在会已经存在一个打印资源名
,然后选择choose printer。
    comment:是对打印机的描述,随便输入一些,比如:printer。
    path:你的打印机spool的路径:比如:/var/spool/samba。
    guest accout:意义同上面的share设置
    guest ok:意义同上面的share设置
    hosts allow,hosts deny:意义同上面的share设置
    print ok:yes
    print name:你的打印机名
    browseable和available意义同上面的share设置。
    STATUS主图标按钮是表明了当前Samba运行的状态,用户可以它来启动和停止 samb
a进程。
    VIEW图标按钮是浏览了/usr/local/samba/lib/smb.conf的内容。
四、运行Samba
    启动samba有两种方式,一种是以stand-alone方式运行,另一种是由inetd启动。二
者各有其优缺点,如果采用stand-alone方式运行,运行速度较快,但是守护
进程将一直会产生子进程来服务,这样,资源被占用地较多,如果你的机器资源足够,
并且访问的要求非常高,那么你可以考虑这个高效率的方式。而以inetd方式运行
samba的话,情形正好相反,占用系统资源较少,但是速度相对较慢。两个方法你只可以
选择其中的一种,不能都使用,如果这样,会出现错误。
  (1)使用inetd启动samba
    为了以inetd方式启动samba需要修改/etc/inetd.conf和/etc/services文件。首先
编辑/etc/inetd.conf文件,在该文件中加入下面两行:
      netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd
      netbios-ns  dgram udp wait root /usr/sbin/nmbd   nmbd
    修改/etc/services 需要加入下面六行数据:
      netbios-ns  137/tcp  nbns
      netbios-ns  137/udp  nbns
      netbios-dgm 138/tcp  nbdgm
      netbios-dgm 138/udp  nbdgm
      netbios-ssn  139/tcp nbssn
      netbios-ssn  139/udp  nbssn
    因为安装samba的时候,系统已经自动在/etc/services文件中添加好了,所以不需
要再动手添加,但是,如果打算以stand-alone方式运行samba的话,就应该在这几行前
面各加一个#注释起来。
    然后杀死inetd进程,并重新启动它。
    (2)以stand-alone方式启动samba
    只要将/etc/rc.d/rc.local文件中国入:
      /usr/local/samba/bin/smbd -D -d1
      /usr/local/samba/bin/nmbd -D -d1 -n samba
    注意,smbd和nmbd的路径一定要正确,请用:whereis smbd和whereis nmbd来找一下
。经过这样的设置samba就基本上可以运行了。

--


行如风
坐如钟
站如松
※ 来源:·幽幽黄桷兰 bbs.cqupt.edu.cn·[FROM: BelovedGirl]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店