发新话题
打印

samba server配置和使用

本主题由 centos 于 2008-4-10 14:20 加入精华

samba server配置和使用

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 linux的Samba套件主要分为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
        [url=file://MUSHROOM/]\\MUSHROOM[/url]  
                [url=file://MUSHROOM/ADMIN$]\\MUSHROOM\ADMIN$[/url]                IPC Service (Samba Server)
                [url=file://MUSHROOM/IPC$]\\MUSHROOM\IPC$[/url]                  IPC Service (Samba Server)
                [url=file://MUSHROOM/test]\\MUSHROOM\test[/url]                  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] OS=[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] OS=[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] OS=[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密码回车即可出现以下界面

如果输入http://localhost:901显示访问失败,那么可能没有打开swat,我们用编辑器打开/etc/xinetd.d/swat,如下

# default: off
# description: 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回车,即可

1)        配置Smb.conf文件前准备
该文件分为三种类型的配置字段
[global] 全局参数设置,samba服务器配置文件的命脉所在
[home] 用户HOME目录共享配置
用户自定义字段 用户根据自己的需求配置的共享字段
以下是我的smb.conf文件内容中的global选项
注意:该配置文件包含两种注释,#和;,井号注释掉的是帮助信息,而分号注释掉的是个选项,去掉分号该选项可用
[global]
        workgroup = vm  #所处的域或者工作组名
        netbios name = SAMBA #netbios主机名
        server string = Samba Server #主机的描述信息
        security = SHARE #samba服务器的安全级别,常用有share/user/server三种安全级别
    #share 无需验证就能访问samba服务器
    #user 需要用户验证通过才能访问
    #server 需要用户验证才能访问,和user的区别就是,它的认证信息保存在一个服务器上
    #如果选择了server安全级别,要多加一个选项即 password server = <主机名/ip地址>
        log file = /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服务器
        max log size = 50 #最大日志大小,单位是KB
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 #这个选项用来设置客户端和samba服务器通信时的socket选项,比较复杂,详细见man smb.conf中的socket options节选。
        ;printcap name = /etc/printcap  #打印机配置文件
        dns proxy = No #dns代理服务器
        ;cups options = raw #通用打印机系统配置
        disable spoolss = 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
        guest ok = 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,全局优先于局部。
附件: 您所在的用户组无法下载或查看附件

TOP

楼主不错的啊

要好好看一下,不知道能否详解打印机的配置共享方法

TOP

发新话题