• CentOS6 samba配置实例及详解


    CentOS6 samba配置实例及详解
    操作系统:CentOS 6.2
    samba版本:Samba 3.5.10-114.el6

    ##################################################
    比较重要的相关配置文件
    ##################################################
    /etc/samba/smb.conf        主配置文件
    /etc/samba/lmhosts        对应NetBIOS Name与主机ip,类似于/etc/hosts
    /etc/samba/smbpasswd        samba默认的用户密码对应表
    /etc/samba/smbusers        windows与unix like管理员等账号的不一致,administrator root,用来对应两者间的账号关系,需smb.conf内的"username map"设置项来启动才行
    /usr/share/doc/samba-    相关的技术手册




    ##################################################
    常用相关的命令
    ##################################################
    smbd            管理主机共享目录,文件与打印机等的守护进程
    nmbd            管理群组和NetBIOS Name的解析

    testparm        检测配置文件的语法
    smbstatus        列出运行状态
    smbpasswd        建立和设置smb用户的密码
    smbclient        用于查看smb或"网上邻居"共享情况
    smbmount        远程挂载(centos6中没有),这一命令可行 mount -t cifs  ///资源

    nmblookup        查询NetBIOS Name,类似nslookup的功能
    smbtree            查看工作级与计算机名称的树状目录分布图



    ##################################################
    相关软件
    ##################################################
    samba            主要的daemon文件(smbd及nmbd)
    samba-common        主要配置(smb.conf),testparm
    samba-client        smbmount,smbclient
    samba-swat        网页配置程序
    samba-domainjoin-gui    domainjoin GUI




    示例一:匿名共享
    vim /etc/samba/smb.conf
    对默认的配置文件只需修改共享模式
    CentOS6 <wbr>samba配置实例及详解
    user ---> share

    然后添加如下共享段
    CentOS6 <wbr>samba配置实例及详解
    service smb restart
    service nmb restart
    chkconfig smb on
    chkconfig nmb on

    chmod -R 777 /mnt/samba
    以上配置即可开启匿名共享

    windows可以win+R快捷键调出运行框,输入\\192.168.x.x即可打开共享目录
    CentOS6 <wbr>samba配置实例及详解



    提示:可选参数
    browseable = no #默认为yes, 即所有人都可以看到该目录, 当设置为no的时候,看不到该目录,但仍然可以访问,访问方式如下:
    \\192.168.x.x\share

    CentOS6 <wbr>samba配置实例及详解

    ##################################################
    samba常用的有两种联机模式
    ##################################################
    1.workgroup    和一般的windows客户机一样
    2.domain    Primary Domain Controller,简称PDC,类似于linux环境下的nis或ldap服务器,将所有的账号与密码都放在一台主控计算机上面,统一管理.



    ##################################################
    配置参数
    ##################################################
    smb.conf主要分两部分,一部分是主机信息部分,[global]部分,一部分是共享信息,如:[homes],#和;都是批注

    #############
    [global]部分
    #############

    workgroup=workgroup            NT域名或工作组名,如:mshome,workgroup
    netbios name=jlive            主机的netbios名称
    server string=jlive's samba        主机的简易说明
    interface=接口或ip            配置samba使用多个网络界面,设置samba需要监听的网上
                        如interface=192.168.100.2 58.195.172.229
                        或interface=eth0 lo

    hosts allow=ip地址或ip地址段        smb自带的防火墙,允许哪些机器可以访问
    hosts deny=ip地址或ip地址段        smb自带的防火墙,允许哪些机器可以访问,一般allow就足够了如hosts allow=ct6,jlive.com,192.168.100. EXCEPT 192.168.100.5
    允许主机名为ct6的主机,域名为jlive.com的域以及192.168.100.0/24中除            192.168.100.5外的所有主机访问

    smb ports=139                指定smb服务端口,默认139 445端口都是开启状态,可以关闭445端口,只允许标准的139端口
    username map=/etc/samba/smbusers    把身份相同但用户名不同的windows和linux用户进行映射
    guest account=pcguest            允许作为客户登录的账号,默认为nobody
    restrict anonymous=yes|no        是否限制匿名用户登录

    #若出现乱码问题,可进行以下设置
    display    charset=UTF-8            smb服务器编码
    unix charset=UTF-8            linux编码
    dos charset=UTF-8            windows编码

    log file                日志文件的存放位置
    max log size                日志文件最大千字节,单位kb
    max open files                能够开启最多的文件数量,默认没有限制

    #密码相关的设置
    security                有如下几种匹配模式
    share    共享级访问,不需密码即可分享
    user    用户级访问,使用smb本身的密码数据库
    server    服务器级访问,使用外部主机密码,可以为windows(pdc),samba,若           设置该项则在smb.conf中要提供password server=ip地址的设置
    domain    域级访问,把samba加入到域,用windows域控制器作为samba的密码           服务器, 来对客户机进行身份验证,也需要password server来指定.
                            netbios=main
                            password server=**    #用主域控制器来作密码服务器
                            security=domain        
                            workgroup=***        #主域控制器的域名
                            ads    最高级别的验证模式,把samba服务器加入到windows活动目录中,一般不使用
    encrypt passwords            密码是否加密
    smb passwd file=/etc/samba/smbpasswd    密码文件
    passdb backend = tdbsam            centos6中默认使用tdb数据库存储密码文件
    machine password timeout        输入密码的超时设置,单位为秒
    min password length            密码的最小长度
    password level                有效密码的位数
    name resolve order            smb主机对netbios name的解析方式:
                                lmhosts         直接以lmhosts来对照
                                wins         利用一台可管理windows网上邻居的主控计算机来记录,smb主机向该windows server要求netbios name的解析
                                host      通过/etc/hosts或nis dns等方式来解析结果
                                bcast         在局域网中直接通过广播功能来处理

    unix password sync=yes|no        是否同步linux主机/etc/passwd
    passwd program                运行修改密码程序所在路径


    #############
    打印机
    #############
    load printers = yes            允许自动加载打印机列表
    cups options = raw
    printcap name = /etc/printcap        打印机配置文件的位置
    printcap name = lpstat            打印机名称
    printing = cups                打印机类型,主要有cups|bsd|sysv|plp|lprng|aix|hpux|qnx



    #############
    wins参数
    #############
    wins support=yes|no    是否作为wins服务器
    wins server=ip|主机名  wins服务器地址,一台samba服务器不能同时作为wins服务器和客户端,当一台samba服务器不是wins服务器而仅需wins服务时,可设置该参数指定wins服务器
    wins proxy=yes|no    是否启用wins代理
    dns proxy=yes|no    是否启用dns代理,用dns来查询netbios name

    domain master=yes|no    指定samba服务器为网络中的网域控制器
    domain logons=yes|no    是否允许windos登录网域
    password server     指定windows(pdc)或samba密码服务器


    #############
    共享部分
    #############
    [共享名称]        只是一个"代号",[homes]是一个特殊的共享名,代表linux主机上的用户默认目录
    comment            目录的说明
    path            共享目录的实际路径
    public            是否让所有可以登录的用户看到这个项目
    read only        是否只读
    browseable        目录浏览权限
    writable        目录写入权限,与read only相似,若两者都有则以最后出现的那个设置参数为主
    create mode        新建文件的默认权限
    directory mode        新建目录的默认权限
    valid users        指定能进入此资源的合法用户
    guest ok        是否允许来宾用户访问
    guest only        强制以guest身份浏览
    read list        只读权限用户列表
    write list        读写权限的用户列表,@表示用户组
    printable        是否可打印



    #############
    变量特性
    #############
    %S    任何可登陆的用户均可登陆
    %m    客户端的netbios主机名
    %M    客户端hostname
    %L    smb主机的netbios主机名
    %h    smb主机的hostname
    %H    用户的默认目录
    %U    目前登陆的用户名
    %g    登陆用户的群组名
    %I    客户端的ip
    %T    目前的日期与时间



    ##################################################
    配置参数
    ##################################################
    以下是一个样例,更多的设置要依实际需要和用途来设置

    1.设置lmhosts,对应netbios与ip
    vi /etc/samba/lmhosts
    127.0.0.1    localhost
    192.168.100.2    jlive

    2.检查语言设置
    一般考虑以下几个因素:
                源文件,即要共享的文件
                linux默认语言编码
                samba显示编码
                客户端编码

    3.vi /etc/samba/smb.conf

    #======================= Global Settings=====================================
       
    [global]
       
        workgroup = mshome
        server string = Samba Server Version %v
        netbios name = jlive
       
        interfaces = lo eth0 192.168.100.2/24 58.195.172.229/24
        hosts allow = 127. 192.168.100. 58.195.172.
       
    # --------------------------- Logging Options -----------------------------
       
        log file = /var/log/samba/log.%m
        max log size = 50
       
    # ----------------------- Standalone Server Options ------------------------
        security = user
        encrypt passwords=yes
        passdb backend = tdbsam

        name resolve order = lmhosts bcast host


    ##################################################
    使smb服务器作为pdc主机
    ##################################################
    # ----------------------- Domain Controller Options ------------------------
       
        domain master = yes                   #指定samba服务器为网络中的网域控制器
        domain logons = yes                  #允许登录服务
        logon  script = start.bat              #登录后自动执行的程序
        logon path = /home/samba/netlogon              #登录默认目录
        logon drive = j                      #登录后默认目录挂载成为windows的哪个盘
        time server = yes                  #保持windows与samba的时间同步
        admin users = root                  #默认的管理员账号
       
    # ----------------------- Browser Control Options ----------------------------
        local master = yes
        preferred master = yes
        os level = 200        #操作系统的等级趆高才能成为主网段的控制者,但不可超过255
       
    #----------------------------- Name Resolution -------------------------------
       
        wins support = yes    #开启wins(pdc)主机服务
       
    ##############################################
    打印机的设置
    ##############################################
    # --------------------------- Printing Options -----------------------------
       
        load printers = yes        #允许自动加载打印机列表
        cups options = raw

        printcap name = /etc/printcap    #打印机配置文件的位置
        printcap name = lpstat        #打印机名称
        printing = cups            #打印机类型


    ##############################################
    共享设置
    ##############################################
    #============================ Share Definitions ==============================
    [netlogon]
        comment = Network Logon Service
        path = /home/samba/netlogon        #与前面的logon script有关,该程序便放在这里
        writable = no
        write list = root
        guest ok = yes
        follow symlinks = yes
        share modes = no
       
       
    [Profiles]
        path = /home/samba/profiles
        browseable = no
        guest ok = yes
       
    [homes]
        comment = Home Directories
        browseable = no
        writable = yes
        valid users = %S
        valid users = MYDOMAIN\%S
        create mode = 0664
        directory mode = 0775
       
    [printers]
        comment = All Printers
        path = /var/spool/samba        #打印队列
        printable = yes            
        public = yes            
        browseable = yes
        guest ok = yes
        writable = no

        valid users = @root shihan    #可以使用的合法用户
        printer admin = shihan        #打印管理员
       
    [ftp]
        comment = Public ftp
        path = /var/ftp
        public = yes
        writable = no
        printable = no
        write list = root
        valid users = %root

    [tmp]
        comment = Public Stuff
        path = /tmp
        public = yes
        writable = yes
        printable = no
        write list = root



    ######################################################
    打印共享
    ###############################################
    cups主要通过postscript的打印语言与打印机沟通,客户端只要取得postscript的驱动程序就能够使用samba服务器所提供的打印机了.

    ###########
    cups设置
    ###########
    vi /etc/cups/cupsd.conf

    # Restrict access to the server...

      Order allow,deny
      Allow From 192.168.100.0/24


    # Restrict access to the admin pages...

      Order allow,deny
      Allow From 192.168.100.0/24

    ......
    Listen 0.0.0.0:631   

    #至于为了操作windows相关软件传来的打印数据,目前还未偿试

    ###########
    samba设置
    ###########
    1.到http://www.cups.org/Windows/software.php下载cups-samba-xxx.tar.gz这个包,解压后安装,默认目录在/usr/share/cups/drivers

    2.要支持windowsXP还需将C:\windows\system32\spool\drivers\w32x86中以PS开头的文件全部另存为小写的文件并放置到/usr/share/cups/drivers目录下即可

    3.增加打印机驱动共享数据
    vi /etc/samba/smb.conf

    ......

    [print$]
        comment    = Printer driver
        path       = /etc/samba/drivers        #共享打印机驱动的存放目录
        browseable = yes
        read only  = yes
        write list = root            #驱动程序的管理员

    4.建立好相关目录
    mkdir /etc/samba/drivers

    5.告知samba,cups可提供winXP的客户端打印驱动程序共享
    cupsaddsmb -H [samba主机名] -h [cups主机名] -a -v -U [用户账号]

    cupsaddsmb -H localhost -U root -a -v

    之后驱动程序的存放目录会自动生成一个目录/etc/samba/drivers/W32X86

    6.重启服务
    /etc/init.d/cups restart
    /etc/init.d/smb restart



    ##############################################
    搭建pdc主机
    ##############################################

    1.建立所需要的目录与文件
    mkdir -p /home/samba/{netlogon,profiles}
    cd /home/samba/netlogon

    vi start.bat

    net time
    jlive    /set /yes
    net use J: /home
    net use D:
    jlive    emp
    #主要格式为net use [device:] [directory]

    2.将该文件转成dos的断行格式,因为windows是以^M$结尾,而unix-like是以$结尾
    unix2dos  /home/samba/netlogon/start.bat

    cat -A /home/samba/netlogon/start.bat

    net time^M$
    jlive^I/set /yes^M$
    net use J: /home^M$
    net use D:^M$
    jlive^Iemp^M$
    #具体用法请查阅dos命令的相关用法

    3.建立用户
    smbpasswd -a root

    说明:windows用户的"桌面" "我的文档"等目录会默认保存在/home/用户账号/profile/目录下,该目录在用户登录时会主动的建立.对于新增的用户可心这样设置,
    mkdir /etc/skel/profile
    以后使用useradd新增用户后就可以直接拥有samba PDC的目录了

    4.建立机器码账号
    由于PDC会对windows客户端的主机名(netbios name)进行检查,所以还需为客户端的主机名称进行账号设置
    useradd -M -s /sbin/nologin -d /dev/null  pc1$
    useradd -M -s /sbin/nologin -d /dev/null  pc2$

    -M    新建用户时不要创建用户主目录
    -d    指定用户的主目录,这里指定的是/dev/null这个特殊文件,即为空
    pc1$    主机账号需在后面加上一个"$"

    5.添加samba账号
    smbpasswd -a -m pc1$
    smbpasswd -a -m pc2$



    #################################################
    相关命令的常见用法
    #################################################

    #############
    1.testparm    测试samba服务的正确性
    #############
    testparm

    #############
    2. smbpasswd    smb用户的新增,删除,密码修改等有关
    #############
    smbpasswd  -adexm  username

    -a     add
    -d    disable 使某个用户暂无法使用
    -e    enable     与disable相反
    -x    删除某个用户
    -m    用户的机器代码

    #############
    3.smbclient   
    #############
    #客户端的查看等
    smbclient  -L //127.0.0.1
    smbclient  -L //127.0.0.1 -U username

    #利用类似ftp的方式登录远程主机
    smbclient '//[IP|hostname]/资源名称' [-U username]

    smbclient  -L //127.0.0.1/tmp -U username

    #############
    4.smbmount|mount 远程挂载
    #############

    smbmount //IP/资源 /挂载点 [-o options]
    mount -t smbfs  //IP/资源 /挂载点 [-o options]

    -o username=    用户名
       password=    密码
       codepage=    远程主机语言编码
       iocharset=    本机语言编码

    mount -t smbfs //127.0.0.1/tmp /mnt/tmp -o username=test,password=****,codepage=GB2312

    注:centos6中好像省去了smbmount这个命令,并且挂载时,mount不认识smbfs,但可以以cifs来挂载
    mount -t cifs //127.0.0.1/tmp /mnt/tmp -o username=test,password=****,codepage=GB2312


    #############
    5.nmblookup    查询netbios name,ip等相关信息
    #############

    nmblookup [-S] [-U wins IP] [-A IP] name

    nmblookup -U localhost jlive

    querying jlive on 127.0.0.1
    58.195.172.229 jlive<00>
    192.168.100.2 jlive<00>

    nmblookup -S jlive

    querying jlive on 127.255.255.255
    58.195.172.229 jlive<00>
    Looking up status of 58.195.172.229
        JLIVE           <00> -         H
        JLIVE           <03> -         H
        JLIVE           <20> -         H
        ..__MSBROWSE__. <01> - H
        MSHOME          <1d> -         H
        MSHOME          <1b> -         H
        MSHOME          <1c> - H
        MSHOME          <1e> - H
        MSHOME          <00> - H

        MAC Address = 00-00-00-00-00-00

    #############
    6.smbstatus    观察samba的状态
    #############
    smbstatus [-pS] [-u username]
    -p processID
    -S 列出已经被使用的资源共享状态
    -u 只列出某个用户相关的共享数据


    Samba version 3.5.10-114.el6

    Samba version 3.5.10-114.el6
    PID     Username      Group         Machine                        
    -------------------------------------------------------------------
    3092      root          root          127.0.0.1    (127.0.0.1)

    Service      pid     machine       Connected at
    -------------------------------------------------------
    ftp          3092   127.0.0.1     Fri May 18 22:41:05 2012




    ###############################################
    windows客户端访问
    ###############################################
    XP用户:
    1."我的文档"--"网上邻居"--"整个网络"--"microsoft windows network"

    2."开始"--"搜索"--"计算机或人"--"网络上的一个计算机"

    支持不同的网段ip联机
    "控制面板"--"windows防火墙"--"例外"--"文件和打印机共享"--"编辑"
    勾选相应的端口
    "更改范围"--"自定义列表",输入网段范围即可
    填写正确的ip,"立即搜索"



    ################################################
    通过445端口的特殊登录方式
    ################################################
    windows客户机,"开始---运行"输入
    \\samba主机的ip\共享资源,如:\\192.168.100.2\public

    还可以登录别人的c盘或d盘,只要别人允许共享
    \\192.168.100.2\c$


  • 相关阅读:
    Python os模块简单应用
    requests获取源代码时中文乱码问题
    python 正则表达式findall和search用法
    linux source路径配置 省掉每次source的烦恼
    mstar屏参调试说明
    Mstar supernova方案调试笔记-001
    NonOS方案屛参的TOTAL和PLL SET值的设置
    supernova系统 Mrsv 简介笔记
    【工作随笔】Javascript 日期获取封装组件
    如何理解springboot中,mapper接口的实现类由持久层框架进行创建,而不由spring创建?
  • 原文地址:https://www.cnblogs.com/lixuebin/p/10814668.html
Copyright © 2020-2023  润新知