zoukankan      html  css  js  c++  java
  • Samba的安装配置使用

    ////////////////////////////////Samba////////////////////////////////////////////

    小常识:
    在同一局域网中,两个系统的工作组名称相同,便是处于同一WorkGroup
    你可以右键计算机属性,选择高级系统设置,点击计算机名,点击更改。
    确认工作组名称相同即可

    smb.conf 主配置文件
    lmhosts 对应NetBIOS name和主机名称的IP地址,作用类似于/etc/hosts

    开放端口时137.138.139端口

    CIFS(Comment Internet File System ,可以理解成是网上邻居)

    Samba套件的配置文件:
    https://www.samba.org/samba/docs/man/manpages/smb.conf.5.html
    samba用户密码的几种方式对比:
    http://www.cnblogs.com/jary-wang/archive/2013/05/21/3091343.html
    samba支持软链接 
    https://fengqi.me/unix/152.html
    samba中文乱码问题 
    http://bbs.chinaunix.net/thread-813206-1-1.html
    samba多用户权限划分 
    http://blog.csdn.net/w657395940/article/details/20312053


    /////////////////////////////////////////////////////////////////////////////////////
    目录
    一、什么是Samba
    二、安装配置Samba
    1.安装
    2.配置
    3.启动服务
    4.创建用户名
    5.如何使用
    6.samba实践

    /////////////////////////////////////////////////////////////////////////////////////
    Samba的安装、配置以及应用
    一、什么是Samba
    提供用户登录Samba主机时的身份认证
    对Windows网络上的主机名解析(NetBIOS Name-----Network Basic Input/Output System 通信协议)
    进行设备的共享(文件/打印机)

    二、安装配置Samba
    1.安装
    yum install -y samba samba-client

    2.常见参数:
    配置文件 smb.conf

    注释符是#
    可以使用的语句;
    实际都是注释

    [global]
    workgroup = MYGROUP/WORKGROUP
    #用来定义工作组,我们选WORKGROUP
    #同一个局域网内,需要有同一个工作组
    #因此生产环境中需要弄到同一工作组上
    server string = Samba Server Version %v
    #这是自定义的
    ; netbios name = MYSERVER
    #主机名称,如果没有设置,默认的NetBIOS会以主机名替代
    ; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
    ; hosts allow = 127. 192.168.12. 192.168.13.
    #用来设置允许的主机,如果在前面加上";",则表示为允许所有主机
    log file = /var/log/samba/log.%m
    max log size = 50
    这是日志切割用的
    security = user
    # user 这里指定Samba的安全等级,关于安全等级有四种:
    # share 用户不需要账户及密码即可登录Samba服务器,创建出来的文件是nobody
    # user 由提供服务的Samba服务器负责检查账户及密码(默认是这个)
    # server 检查账户及密码的工作由另外一台Windows或者Samba服务器负责
    passdb backend = tdbsam
    #密码存储的方式,用户的后台
    #还有smbpasswd
    #以及ldapsam
    encrypt password = yes
    smb passwd file = /etc/samba/smbpasswd
    #加密用的
    ; dns forwarder = 192.168.0.1
    ; dns proxy = yes

    load printers = yes
    cups options = raw
    #这两个是打印机用的
    ; printcap name = /etc/printcap
    ; printcap name = lpstat

    [homes]
    comment = Home Directories
    这是说明,自定义的
    browseable = no
    writable = yes
    ; valid users = %S
    ; valid users = MYDOMAIN\%S
    create mode = 0664
    directory mode = 0775

    [public]
    ; comment = Read Only Public
    ; path = /home/samba
    ; public = yes
    ; writable = no
    ; printable = no
    ; write list = +staff
    valid users = dazuo,@caiwu,@lingdao,network02
    #允许访问的用户
    #允许访问的group
    read list = dazuo,@caiwu
    #意味在read list里面的用户(组)只有只读权限,不管有没有read only
    read only =yes


    %U 当前登陆的用户名

    %g 当前登录用户的群组名称

    %h 运行Samba的HOSTNAME

    %H 代表用户的主目录

    %m 代表客户端NetBIOS主机名称

    %M 就是HOSTNAME

    %L Samba主机的NetBIOS主机名称

    %I 代表客户端的IP地址

    %T 当前日期时间

    %D 当前用户所属组名

    %S 取代当前设值的参数值,也就是取代[]里面的内容
    the name of the current service, if any.


    3.启动服务
    service smb start

    4.创建用户名
    使用smbpasswd:
    smbpasswd -a 用户名 #添加一个samba用户
      smbpasswd -d 用户名 #禁用一个samba用户
      smbpasswd -e 用户名 #恢复一个samba用户
      smbpasswd -x 用户名 #删除一个samba用户
    #要创建的Samba用户必须是系统用户

    早期使用的是这个,现在普及用tdbsam

    使用tdbsam:
    建立一个用户数据库passdb.tdb
    pdbedit -i smbpasswd:/etc/samba/smbpasswd
    pdbedit -a username :新建Samba账户
    pdbedit -x username :删除Samba账户
    pdbedit -L :列出Samba用户列表,读取passdb.tdb数据库文件
    pdbedit -Lv :列出Samba用户列表详细信息
    pdbedit -c "[D]" -u username :暂停该Samba用户账号
    pdbedit -c "[]" -u username :回复Samba用户账号

    使用ldapsam :
    基于LDAP账户管理方式验证用户,首先要建立LDAP服务,设置"passdb backend = ldapsam:ldap://LDAP Server"
    高级一点用这个

    5.如何使用
    Linux访问Samba共享文件:
    a.安装客户端软件 :yum install -y samba-client
    b.使用命令smbclient访问:
    格式:smbclient //IP/共享名 -U 用户名
    如果省略掉-U,则是匿名访问(nobody)
    c.把共享文件挂在到本机:
    挂载Samba目录:mount -t cifs //192.168.0.22/myshare /mnt/ -o username=user,password=yourpasswd
    umount /mnt 取消挂载
    可能会bad option 需要安装cifs的包
    Windows访问Samba共享文件:
    a.在开始--运行处输入:
    \ipyourpath
    b.浏览器输入
    file://192.168.0.22/myshare

    6.samba实践(均为Peer/peer模型,域模型这里不做介绍)
    (1)共享一个目录,使用用户名和密码登陆后才可以访问,要求可以读写

    配置如下:
    [global] 部分内容如下
    workgroup = WORKGROUP
    server string = Samba Server Version %u
    security = user
    passdb backend = tdbsam
    load printers = yes
    cups options = raw

    还需要加入:
    [myshare]
    comment = share for users
    path = /samba
    browseable = yes
    writable = yes
    public = no

    创建目录 : mkdir /samba
    修改权限 : chmod 777 /samba

    创建系统账号:
    useradd user1
    useradd user2

    添加user1/user2为samba账户:
    pdbedit -a user1
    pdbedit -a user2

    重启服务 server smb restart

    测试:
    浏览器输入 file://192.168.0.22/myshare
    或者
    smbclient -Uuser1 //192.168.0.22/myshare


    (2)samba同时使用匿名和用户登录

    配置如下:
    [global]
    workgroup = WORKGROUP
    server string = Samba Server Version %v
    log file = /var/log/samba/log.%m
    max log size = 50
    security = user
    passdb backend = tdbsam
    load printers = yes
    cups options = raw
    map to guest = bad user
    guest account = nobody
    encrypt password = yes
    smb passwd file = /etc/samba/smbpasswd

    [public]
    comment = public
    path = /data/pub/public
    browseable = yes
    guest ok = yes
    writable = yes
    printable = no
    create mask = 0644
    directory mask =0755

    [project]
    comment = project
    path = /data/pub/project
    browseable = yes
    public = no
    guest ok = no
    writable = yes
    force user = root
    printable = no
    create mask = 0644
    directory mask = 0755

    注意,需要我们手动创建/data/pub/public 和 /data/pub/project目录,为了顺利完成试验,需要提前修改权限777


    (3)samba多用户权限划分
    见最上面的链接

  • 相关阅读:
    Output in PowerShell
    Best practice for Invoke other scripts or exe in PowerShell
    Array.Add () and += in PowerShell
    Hash table in PowerShell
    PowerShell Remove all user defined variable in PowerShell
    C# Regex ignoring non-capturing group
    C# Convert an enum to other type of enum
    what does Html.HiddenFor () for ?
    How to configure connectingstrings in Web.config
    Select specified items from Tuple List
  • 原文地址:https://www.cnblogs.com/ImJerryChan/p/6567139.html
Copyright © 2011-2022 走看看