Things change, roll with the punches.Oh, yeah. Go for it man, jump off the high dive, stare down the barrel of the gun, pee into the wind!

Samba Server配置与使用

上一篇 / 下一篇  2007-01-05 00:55:12 / 天气: 阴雨 / 心情: 高兴 / 精华(3) / 置顶(3) / 个人分类:Linux

Samba Server配置与使用
文档说明
本人初次研究Samba Server,难免出现谬误,请指正
联系作者:
E-Mail:yang119345@gmail.com
MSN:yang119345@msn.com
QQ:150272988
 
1.     Samba简介
samba server的主要作用就是提供linux和windows之间文件/打印机共享
注意:Windows端必须要安装tcp/ip协议,这样才能确保Linux,Windows之间用samba共享。
samba项目的主页-http://www.samba.org(最近台湾地震,上不去,郁闷)
samba的包主要分为rpm和tarball包两种,以下我们以Fedora Core/RedHat linux的rpm包安装方式讲解
 
2.     Fedora Core/RedHat linuxSamba套件主要分为4个包
samba daemon                            samba服务器的主软件包
samba-client                        samba客户端工具
samba-common                    samba相关的工具和库文件包
samba-swat                          samba本机基于web的图形化samba配置工具
 
3.     获得samba软件包
1.        官方网站下载samba
2.        系统安装盘中获得,光盘里面找找,一般在第一张光盘:)Fedora Core/RedHat linux
 
4.     安装
将所有samba相关的rpm包放入到同一个文件夹中
然后切换到root权限(用su切换)
#rpm -ivh samba*.rpm然后回车即可完成安装
安装好后检查软件包是否安装
#rpm -qa samba
如果安装了就会返回软件的包名,例如
# rpm -qa samba*
samba-common-3.0.10-1.4E.9
samba-3.0.10-1.4E.9
samba-client-3.0.10-1.4E.9
samba-swat-3.0.10-1.4E.9
以上仅供参考,具体显示的版本号,根据版本的不同有所区别:)
 
5.     Samba相关命令
smbtree
作用:显示局域网中所有主机和目录列表
用法:smbtree [-b] [-D] [-U username%password]
例如:
#smbtree
Password:<----这里直接回车表示匿名访问
WORKGROUP
       \\MUSHROOM 
               \\MUSHROOM\ADMIN$               IPC Service (Samba Server)
               \\MUSHROOM\IPC$                 IPC Service (Samba Server)
               \\MUSHROOM\test                 Access to test directory
 
nmblookup
作用:显示一台主机的netbios的ip地址
用法:nmblookup 主机的netbios名
例如:
#nmblookup samba
querying samba on 192.168.2.255
192.168.2.2 samba<00>
 
smbclient
作用:显示/登陆局域网中的共享主机
用法:smbclient -L host -U username%passwd
               smbclient //host/share
例如:   
#smbclient -L 192.168.2.111 -U administrator #以管理员身份显示192.168.2.111 xp主机共享内容
Password:<--输入主机管理员密码回车
Domain=[MUSHROOM] ōS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
 
        Sharename       Type      Comment
        ---------       ----      -------
        E$              Disk      Default share
        project         Disk
        IPC$            IPC       Remote IPC
        D$              Disk      Default share
        I$              Disk      Default share
        K$              Disk      Default share
        G$              Disk      Default share
        F$              Disk      Default share
        ADMIN$          Disk      Remote Admin
        H$              Disk      Default share
        C$              Disk      Default share
session request to 192.168.2.111 failed (Called name not present)
session request to 192 failed (Called name not present)
Domain=[MUSHROOM] ōS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
 
        Server               Comment
        ---------            -------
 
        Workgroup            Master
        ---------            -------
看到192.168.2.111主机存在一个project共享目录,那我们现在进入这个目录,如下命令
# smbclient //192.168.2.111/project administrator
Domain=[MUSHROOM] ōS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \> ls
 .                                   D        0 Mon Jun 12 14:02:28 2006
  ..                                  D        0 Mon Jun 12 14:02:28 2006
 c                                   D        0 Mon Jun 12 14:02:21 2006
 vbs                                 D        0 Mon Jun 12 14:02:26 2006
 
                60023 blocks of size 262144. 9259 blocks available
注意出现smb:\>说明登陆成功了(风格比较象ftp),可以输入help命令查看smb客户端工具的命令集:)
输入q推出smb客户端。
 
smbmount
作用:远程挂载共享目录
用法:smbmount //host/share /mountpoint -o username=username%passwd
例如:要将192.168.2.111主机的project共享目录挂载到本机的/media/netshare(记得先创建此目录哦)下,命令如下
smbmount //192.168.2.111/project /media/netshare -o username=administrator%12345678
(当然用mount –t smbfs //192.168.2.111/project /media/netshare也可以)
呵呵,稍等就挂载好了。然后就能像访问本地目录一样访问了,ls /media/netshare看看.哈
如果要卸载共享目录那就用smbumount /mountpoint(umount /mountpoint也可以)即可
例如:卸载刚才挂载的目录smbumount /media/netshare回车就okey了。
 
smbtar
作用:远程打包共享主机中的文件
用法:smbtar -s server -u user -p password -x sharename -t output_file
例如:smbtar -s 192.168.2.111 -u administrator -p 12345678 -x project -t project.tar
如果成功会在当前目录下生成一个project.tar文件,用tar -tvf project.tar查看下tar包的内容。
huh~~
#tar -tvf project.tar
tar: Record size = 4 blocks
drwxr-xr-x 0/0               0 2006-06-12 14:02:21 ./c/
drwxr-xr-x 0/0               0 2006-06-12 14:02:26 ./vbs/
比较下里面的东西和你主机共享是否相同:)
注意:redhat linux 9光盘中提供的samba套件的smbtar有个bug,就是他不管你输入不输入用户名和密码他默认就是用匿名登陆的
这样照成如果一个共享目录匿名没有权限,那打包的时候打包文件大小为0kb。
解决方法:只要用编辑器打开/usr/bin/smbtar然后移动到该文件的倒数第二行,将里面的-N参数去掉即可。即:改为
eval $SMBCLIENT "'\\\\$server\\$service'" "'$password'" -U "'$username'" \
-E $log -D "'$cdcmd'" ${clientargs} \,然后保存退出即可。以后的版本貌似修复了这个bug :)
 
6.     samba服务器配置
1.        用samba-swat工具,该工具提供了一个web界面来实现配置samba的配置非常简单,在此就不多介绍了。
浏览器中输入http://localhost:901然后认证框中输入root和root密码回车即可出现以下界面
51Testing软件测试网 ~J$^P5\5K1`

大小: 60.65 K
尺寸: 400 x 391
浏览: 6 次
点击打开新窗口浏览全图51Testing软件测试网8]9~_ Gm\VK+|

 
如果输入http://localhost:901显示访问失败,那么可能没有打开swat,我们用编辑器打开/etc/xinetd.d/swat,如下
 
# default: off
# descrīption: SWAT is the Samba Web Admin Tool. Use swat \
#              to configure your Samba server. To use SWAT, \
#              connect to port 901 with your favorite web browser.
service swat
{
        disable = yes(一定要将此处改为no)
        port            = 901
        socket_type     = stream
        wait            = no
        only_from       = 127.0.0.1
        user            = root
        server          = /usr/sbin/swat
        log_on_failure += USERID
}
修改完毕,保存退出,然后重新启动xinetd服务,service xinetd restart回车,即可:)
2.        手工配置/etc/samba/smb.conf文件
配置完后,需要保存配置文件,然后service smb restart才能生效配置J
1)       配置Smb.conf文件前准备
该文件分为三种类型的配置字段
[global] 全局参数设置,samba服务器配置文件的命脉所在
[home] 用户HOME目录共享配置
用户自定义字段 用户根据自己的需求配置的共享字段
以下是我的smb.conf文件内容中的global选项
注意:该配置文件包含两种注释,#和;,井号注释掉的是帮助信息,而分号注释掉的是个选项,去掉分号该选项可用
[global]
       workgroup= vm            #所处的域或者工作组名
       netbiosname= SAMBA     #netbios主机名
       serverstring= Samba Server      #主机的描述信息
       security= SHARE#samba服务器的安全级别,常用有share/user/server三种安全级别
                                   #share无需验证就能访问samba服务器
                                   #user需要用户验证通过才能访问
                                   #server需要用户验证才能访问,和user的区别就是,
它的认证信息保存在一个服务器上
                                   #如果选择了server安全级别,要多加一个选项即
password server = <主机名/ip地址>
       logfile= /var/log/samba/%m.log   #samba服务器的访问日志,其中的%m是变量
表示netbios名,例如netbios名为mushroom的主机访问了本机的samba服务器,那么访问日志会保
存在/var/log/samba/mushroom.log,其他变量参数详见man smb.conf
        ;encrypt passwords= yes        #加密密码
        ;smb passwd file= /etc/samba/smbpasswd #samba的用户帐号文件,存放帐号和
密码
        ;include= /etc/samba/smb.conf.%m#包含外部的配置文件,如果你对每个客户机设
置不同的配置选项的话,可使用此选项
        ;interfaces= 192.168.0.0/24
        #设置samba工作的网络接口,注释
掉此项则工作在所有可用的网络接口
        ;name resolve order= wins lmhost bcast 
#主机名解析顺序wins服务器->本机/etc/samba/lmhost文件->广播。
        ;wins support= yes             
#支持使用wins服务器,wins服务器主要提供netbios名字服务
        ;wins server= 192.168.2.5      
#存放主机名的wins服务器
       maxlogsize= 50       
#最大日志大小,单位是KB
       socketoptions= TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 
#这个选项用来设置客户端和samba服务器通信时的socket选项,比较复杂
#详细见man smb.conf中的socket options节选。
       ;printcapname= /etc/printcap             #打印机配置文件
       dnsproxy= No               #dns代理服务器
       ;cupsoptions= raw      #通用打印机系统配置      
       disablespoolss= yes    #去除客户端访问的时候,显示的共享打印机目录
 
#其实samba的global选项非常多,以上只列出了常用的几个,更多详见man smb.conf文件
 
[homes]
       comment= Home Directories         #共享注释
       writeable= yes          #可写选项
       browseable= No         #可浏览选项
 
[printers]
       comment= All Printers             #共享注释
       path= /var/spool/samba   #共享路径
       printable= Yes #可打印选项
       browseable= No #可浏览选项
 
[test]
       comment= Access to test directory
       path= /test
       public= yes
       writeable= yes
       guestok= yes
2)       访问控制
全局访问控制——控制本服务器所有的共享目录访问
[global]
       Hosts deny = ALL
       Hosts allow = 192.168.2.      <-此处等号右面的书写规则详见
man 5 hosts_access中的PATTERNS节选,那里有明确的定义规则
#只允许192.168.2网段访问
局部访问控制——仅控制该字段内的的目录访问
[test]
       Hosts deny = 192.168.2.
       Hosts allow = 192.168.2.111
#test字段只允许192.168.2.111以及192.168.2网段以外的主机访问
      如果要设置192.168.2网段中除了192.168.2.111主机其他都能访问,那设置如下
              Hosts allow = 192.168.2. except 192.168.2.111
注意:如果以上规则deny和allow出现冲突时,allow优先于deny,全局优先于局部。
word原稿请到以下联接下载:)

TAG: Linux

 

评分:0

我来说两句

日历

« 2024-04-13  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 45805
  • 日志数: 42
  • 图片数: 3
  • 文件数: 1
  • 书签数: 13
  • 建立时间: 2007-01-05
  • 更新时间: 2007-03-03

RSS订阅

Open Toolbar