• Samba的基本配置


    http://blog.csdn.net/xiaoxxcool/article/details/3017569
    分类: LINUX2008-10-0514:37 119人阅读 评论(0) 收藏 举报
    1.Samba简介:
    Samba主要用做Linux/UNIX系统向Windows客户提供共享服务,它可以做到当Windows访问Linux的文件或打印机的时候,可以像访问其他Windos一样直接用//ip地址 或者 //计算机名 的方式来访问。
    所以我建议一般的文件服务器都可以使用Linux来做,既稳定,又快速,而且不怕中毒,因为文件服务器有很多客户机往文件服务器上交换文件,现在Windows上的病毒数不胜数,稍微一台机器中毒,极有可能造成服务器感染病毒,这样文件一来往,就会造成整个局域网都中毒了。我以前就碰到过因为文件服务器造成威金病毒泛滥的事情。

    Samba服务器不但可以进行文件,设备(打印机,光驱资料…)的共享,而且还可以根据登陆的身份,来提供不同权限的共享资料。并且可以根据用户,显示不同的共享目录,这点好像Windowsserver做不到呢。
    当然了,我这里并不是使用Samba做文件服务器,只是想让我的Linux与公司其他机器实现简单的文件共享交换。

    现在我们可以用 rpm -qa | grep samba命令来看看服务器有没有安装samba组件,一般安装Linux的时候,最好能够安装上常用的服务,如果没有安装,可以去http://www.samba.org下载安装。现在最新版好像是samba-3.0.28。RHEL 5.0自带的是samba-3.0.23c-2。
    另外,你的Linux的核心要支持smbfs,一般各种发布已经把smbfs的支持包含进去,如果没有包含的话,就要重新编译核心,获得smbfs支持,编译的方法以后会学习到。(*^__^*) 

    2.Samba配置:
    samba是一个服务套件,安装之后会有一些命令和配置文件,下面我把常用的列出来。

    samba会用到的一些命令:
    service smb start | restart |stop:这个是系统自带的samba的启动|重启|停止的命令。
    smbpasswd:这个是samba用户管理命令。这个命令是把Linux已经存在的用户加入到samba用户里面,来实行权限分配。一定要在系统里存在,已经列在了/etc/passwd里面,否则需要事先用useradd来建立。samba不像vsftp等服务,是直接调用系统的用户。
    smbpasswd有很多参数,我们可以用 smbpasswd--?来查看所有参数说明。
    程序代码 程序代码
    这几个samba用户管理参数主要是root用户才能使用的:
    -aUSER    加入用户,输入此命令后,会要求你输入2次密码,以后此用户就一此密码登录samba服务器
    -x    删除用户
    -n    删除用户密码,这样这个用户以后登录就只需要输入用户名。
    -d    禁用用户
    -e    启用用户

    testparm:每次配置完smb.conf之后,用此命令可以检查一下,有没有配置错误。
    smbclient:此命令就是连接smb/cifs服务器的客户端命令。也有很多参数,具体看另外一篇文章。

    Samba的几个配置文件:
    /etc/samba/smb.conf  这个是samba的主要配置文件。一般的设置都在这里面了。
    /etc/samba/smbpasswd      这个是存储samba用户密码的文档,smbpasswd命令的操作体现在这个文档中
    /etc/samba/lmhosts      这个是LAN内netBIOSname与计算机对应的文档,有点跟/etc/hosts,但是现在好像不需要配置了,所以也没什么用了。


    我们配置samba服务器只要是配置/etc/samba/smb.conf就了以了。
    smb.conf文件的共享项目用[name]来开头。

    第一个[global]是必须选项,这个不是共享项目,是全局配置:
    程序代码 程序代码
    我写的都是默认的文档,如果前面加了;号,别是注释掉了。如果你想配置该项,把前面的;号去掉就可以了。

    workgroup =mygroup  #这个是windows下看到此samba服务器的工作组
    server string = sambaserver  #这个是在用windos打开samba服务器的时候,标题栏显示的标题。
    security =user  #认证等级。
    share---不需要提供用户名和密码
    user----需要提供用户名和密码,而且身份验证由 sambaserver 负责
    server--需要提供用户名和密码,可指定其他机器(winNT/2000/XP)或另一台samba server作身份验证
    domain--需要提供用户名和密码,指定winNT/2000/XP域服务器作身份验证
    ;  hosts allow = 192.168.1. 192.168.2.127.     #表示允许访问的IP或者网段。默认前面加了;号,就是注释掉了,表示允许任何计算机。
    load printers =yes  #开机的时候就自动共享打印机。
    ;  printcap name =/etc/printcap    #打印机配置文件地址
    ;  printing =cups    #打印机类型
    cups options = raw
    ;  guest account =pcguest    #表示来宾帐户名称,既匿名时候的用户权限
    log file =/var/log/samba/%m.log    #日志文件地址
    max log size =50    #日志文件最大容量,单位为KB。如果是0,表示不做限制。
    ;   password server =<NT-Server-Name>    #指定ip或计算机名,以此台计算机的用户密码为认证服务器。

    …………
    …………
    ……下面还有N多参数,不一一列出,自己去看看。


    之后就是共享项目了,格式为:
    程序代码 程序代码
    [共享项目]
    指令1 = 参数
    指令2 = 参数
    指令3 = 参数


    比如:
    [share]
    conmengt = This is a test share
    path = /root/test
    public = yes
    browseable = yes
    writable = no
    这样就在Linux共享了一个名为“share”的目录了。

    下面列出所有共享的指令:
    程序代码 程序代码
    comment---------注释说明
    path------------分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对
    browseable------是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
    printable-------是yes/否no允许打印
    hide dot ftles--是yes/否no隐藏隐藏文件
    public----------是yes/否no公开共享,若为否则进行身份验证(只有当security= share 时此项才起作用)
    guestok--------是yes/否no公开共享,若为否则进行身份验证(只有当security= share 时此项才起作用)
    readonly-------是yes/否no以只读方式共享当与writable发生冲突时也writable为准
    writable--------是yes/否no不以只读方式共享当与readonly发生冲突时,无视read only
    validusers-----设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)
    invalidusers---设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)
    readlist-------设定此名单内的成员为只读(用户名/@组名)
    writelist------若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)
    veto files = /*.exe/*.com/------限制共享的文件类型(此处限制exe和com这2种文件),支持通配符*和?,每个类型以斜线(/)区分开。
    create mask-----建立文件时所给的权限
    directory mask--建立目录时所给的权限
    forcegroup-----指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)
    forceuser------指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)
    allowhosts-----设定只有此网段/IP的用户才能访问共享资源
    allwo hosts = 网段 except IP
    denyhosts------设定只有此网段/IP的用户不能访问共享资源
    allow hosts=本网段指定IP指定IP
    deny hosts=指定IP本网段指定IP


    3.配置实例:
    这个是我配置samba的实例,摘录如下:

    [root@sounix01 ~]# rpm -qa | grep samba
    samba-3.0.23c-2
    samba-common-3.0.23c-2
    system-config-samba-1.2.39-1.el5
    samba-client-3.0.23c-2
    [root@sounix01 ~]# service smb start
    启动 SMB服务:                                            [确定]
    启动 NMB服务:                                            [确定]
    [root@sounix01 ~]# smbpasswd -a zmt
    New SMB password:
    Retype new SMB password:
    Added user zmt.
    [root@sounix01 ~]# ls -l / |grep data1
    drwxrwxr-x   14zmt  zmt   4096 01-18 11:41data1
    [root@sounix01 ~]# vi /etc/samba/smb.conf
    [root@sounix01 ~]# service smb restart
    关闭 SMB服务:                                            [确定]
    关闭 NMB服务:                                            [确定]
    启动 SMB服务:                                            [确定]
    启动 NMB服务:                                            [确定]
    [root@sounix01 ~]#

    其中 vi/etc/samba/smb.conf里面配置了一个名为data1的共享,共享的目录也是/data1,并允许zmt这个用户可以修改,其他用户只能只读。
    还有,如果配置zmt可以修改data1共享的时候,必须在Linux下,设置zmt也有对/data1这个目录的修改权限。
    Samba的基本配置 - 南太平洋珊瑚礁 - 南太平洋珊瑚礁

    下面是smb.conf中[data1]的配置:
    [data1]
    comment = Sounix Software
    path = /data1
    public = no
    guest ok = no
    browseable = yes
    writable = no
    write list = zmt
    最后就可以访问了:
    Samba的基本配置 - 南太平洋珊瑚礁 - 南太平洋珊瑚礁

    如果用其他Linux计算机访问此共享,那么可以用smbclient或者用mount挂载:
    [root@qaeback mnt]# mount -t cifs -o username=zmt,password=zmt//sounix01/data1 /mnt/test
    [root@qaeback mnt]# mount | grep sounix
    //sounix01/data1 on /mnt/test type cifs (rw,mand)
    [root@qaeback mnt]#

    附:Samba相关命令

    这是《Linux工作日志之:Samba与NFS的基本配置》的补充篇。
    因为篇幅有限,所以上篇配置里面不能列出一些命令的详细参数,现在这里这种讲讲。

    smbclient
    smbclient(samba client)

    功能说明:可存取SMB/CIFS服务器的用户端程序。

    语   法:smbclient[网络资源][密码][-EhLN][-B<IP地址>][-d<排错层级>][-i<范围>][-I<IP地址>][-l<记录文件>][-M<NetBIOS名称>][-n<NetBIOS名称>][-O<连接槽选项>][-p<TCP连接端口>][-R<名称解析顺序>][-s<目录>][-t<服务器字码>][-T<tar选项>][-U<用户名称>][-W<工作群组>]

    补充说明:SMB与CIFS为服务器通信协议,常用于Windows95/98/NT等系统。smbclient可让Linux系统存取Windows系统所分享的资源。

    参  数:
      [网络资源]  [网络资源]的格式为//服务器名称/资源分享名称。
      [密码]  输入存取网络资源所需的密码。
      -B<IP地址>  传送广播数据包时所用的IP地址。
      -d<排错层级>  指定记录文件所记载事件的详细程度。
      -E  将信息送到标准错误输出设备。
      -h   显示帮助。
      -i<范围>  设置NetBIOS名称范围。
      -I<IP地址>  指定服务器的IP地址。
      -l<记录文件>  指定记录文件的名称。
      -L  显示服务器端所分享出来的所有资源。
      -M<NetBIOS名称>  可利用WinPopup协议,将信息送给选项中所指定的主机。
      -n<NetBIOS名称>  指定用户端所要使用的NetBIOS名称。
      -N   不用询问密码。
      -O<连接槽选项>  设置用户端TCP连接槽的选项。
      -p<TCP连接端口>  指定服务器端TCP连接端口编号。
      -R<名称解析顺序>  设置NetBIOS名称解析的顺序。
      -s<目录>  指定smb.conf所在的目录。
      -t<服务器字码>  设置用何种字符码来解析服务器端的文件名称。
      -T<tar选项>  备份服务器端分享的全部文件,并打包成tar格式的文件。
      -U<用户名称>  指定用户名称。
      -W<工作群组>  指定工作群组名称。
     
     
  • 相关阅读:
    工作问题随笔记录追加Filter过滤器踩坑记录
    vant使用dialog弹框遇到的小问题记录
    文件转换对应文件格式参数值
    总结pycharm运行代码只显示Process finished with exit code 0的解决办法
    DBA技术分享(二)MYSQL常用查询Columns和Views
    【学习总结】Git小结 (Mac版)
    【问题解决方案】MAC HBuilder X内置浏览器插件安装失败
    记一次 int 值溢出,引发的逻辑性错误
    Access 字段类型:【备注】 使用 getString() 读取字段内容是错误的!!!
    压缩算法原理
  • 原文地址:https://www.cnblogs.com/leeeee/p/7276673.html
Copyright © 2020-2023  润新知