zoukankan      html  css  js  c++  java
  • Samba实战

    Samba实战

     

    Samba服务简介

    Samba是一个实现不同操作系统(Windows、Linux、UNIX)之间文件共享和打印机共享的一种SMB协议的免费软件。SMB协议是客户机/服务器协议,客户机通过该协议可以访问服务器上的共享文件及打印机共享资源。它主要应用于局域网上,也可以通过设置“NetBIOS over TCP/IP”同互联网中的电脑分享资源。

    SMB协议:TCP 139端口

    CIFS协议:TCP 445端口

     

    Samba服务配置

    1、安装samba软件包

    yum install -y samba samba-client samba-common

    2、Samba的重要配置文件说明

    /etc/samba/smb.conf:

    SAMBA的主配置文件,内有丰富的说明,也可以通过man smb.conf查看它的详细说明。文档内部主要设定了两个部分,分别是[global]全局设置参数与共享文件设置参数;

    security=share //设置用户范文samba服务器的验证方式,一共四种验证方式:

    share:用户访问samba server不需要提供用户名和密码,安全性较低;

    user:samba server共享目录只能被授权的用户访问,由samba server负责检查账号和密码的正确性,账号与密码要在本samba server中建立;

    server:依靠其他windows NT/2000或samba server来验证用户的账号和密码,是一种代理验证方式。该安全模式下,系统管理员可以把所有的windows用户和密码集中到一个NT系统上,使用windows NT进行samba认证,远程服务器可以自动认证全部用户和口令,如果认证失败,samba将使用用户级安全模式作为替代的方式;

    domain:域安全级别,,使用主域控制器(PDC)来完成认证。

    passdb backend=tdbsam //定义用户后台类型

    smbpasswd: 使用SMB服务的smbpasswd命令给系统用户设置SMB密码

    tdbsam: 创建数据库文件并使用pdbedit建立SMB独立用户,smbpasswd -a username 建立samba用户并设置密码,不过需要先建立系统用户,也可以使用pdbedit命令来建立samba用户

    pdbedit -a username:新建samba账号

    pdbedit -x username:删除samba账号

    pdbedit -L:列出samba账号列表,读取passdb.tdb数据库文件

    pdbedit -c “[D]” -u username:暂停该samba用户的账号

    pdbedit -c “[]" -u username:恢复该samba用户的账号

    ldapsam:基于LDAP服务进行账户验证

    username map=/etc/samba/smbusers //配合/etc/samba/smbusers文件设置虚拟账号

    /etc/samba/lmhosts:

    主要目的在对应NetBIOS name与该主机名称的IP,有点类似/etc/hosts功能;

    /etc/samba/smbpasswd:

    默认并不存在,它是SAMBA预设的使用者密码对应表,文件也可自行在smb.conf里面设定文件名及相应位置。不过需要注意该文件的权限(拥有者为root,权限为600);

    /var/log/samba:samba服务日志文件

    配置文件

    vim /etc/samba/smb.conf

    [global]

    #设置samba server需要加入的工作组或者域

    workgroup = MYGROUP

    #以share验证方式访问

    security = share

    #注释信息,宏%v显示samba的版本信息

    server string = Samba Server Version %v

    #设置共享账户文件的类型,默认使用tdbsam(TDB数据库文件)

    passdb backend = tdbsam

    #设置Samba共享打印机的类型。现在支持的打印系统有:bsd, sysv, plp, lprng, aix, hpux, qnx

    printing = cups

    #设置共享打印机的配置文件

    printcap name = cups

    #设置是否在启动Samba时就共享打印机

    load printers = yes

    cups options = raw

    #自定义共享名称
    [share]

    #共享描述
    comment=this is share directory!

    #共享目录路径
    path=/opt/share

    #设置共享是否允许guest账户访问
    public=yes

    #yes/no,设置共享是否可浏览,如果no则表示隐藏,需要通过“//ip/共享目录"进行访问
    browseable=yes

    #设置共享是否具有可写权限

    writable=yes

    #创建的文件权限为644
    create mask=0644

    #创建的文件目录为755
    directory mask=0755

    vim /etc/samba/smb.conf

    [global]

    #设置samba server需要加入的工作组或者域

    workgroup = MYGROUP

    #以share验证方式访问

    #security = share改命令现在被删除,用以下替代

    security = user

    map to guest = Bad User

    #注释信息,宏%v显示samba的版本信息

    server string = Samba Server Version %v

    #设置共享账户文件的类型,默认使用tdbsam(TDB数据库文件)

    passdb backend = tdbsam

    #自定义共享名称
    [share]

    #共享描述
    comment=this is share directory!

    #共享目录路径
    path=/opt/share

    #设置共享是否允许guest账户访问
    public=yes

    #yes/no,设置共享是否可浏览,如果no则表示隐藏,需要通过“//ip/共享目录"进行访问
    browseable=yes

    #设置共享是否具有可写权限

    writable=yes

    #创建的文件权限为644
    create mask=0644

    #创建的文件目录为755
    directory mask=0755

    配置匿名用户访问

    vim /etc/samba/smb.conf

    [global]

    #设置samba server需要加入的工作组或者域

    workgroup = MYGROUP

    #以share验证方式访问

    #security = share改命令现在被删除,用以下替代

    security = user

    map to guest = Bad User

    #注释信息,宏%v显示samba的版本信息

    server string = Samba Server Version %v

    #设置共享账户文件的类型,默认使用tdbsam(TDB数据库文件)

    passdb backend = tdbsam

    #自定义共享名称
    [share]

    #共享描述
    comment=this is share directory!

    #共享目录路径
    path=/opt/share

    #设置共享是否允许guest账户访问
    public=yes

    #yes/no,设置共享是否可浏览,如果no则表示隐藏,需要通过“//ip/共享目录"进行访问
    browseable=yes

    #设置共享是否具有可写权限

    writable=yes

    #创建的文件权限为644
    create mask=0644

    #创建的文件目录为755
    directory mask=0755

    创建共享目录及设置权限

    mkdir /opt/share
    chmod 777 /opt/share

    重启smb

    systemctl start smb

    在windows端测试

     

    本地用户访问

    vim /etc/samba/smb.conf

    [global]

    #设置samba server需要加入的工作组或者域

    workgroup = MYGROUP

    #以share验证方式访问

    security = user

    #注释信息,宏%v显示samba的版本信息

    server string = Samba Server Version %v

    #设置共享账户文件的类型,默认使用tdbsam(TDB数据库文件)

    passdb backend = tdbsam

    #自定义共享名称
    [share]

    #共享描述
    comment=this is share directory!

    #共享目录路径
    path=/opt/share

    #设置共享是否允许guest账户访问
    public=yes

    #yes/no,设置共享是否可浏览,如果no则表示隐藏,需要通过“//ip/共享目录"进行访问
    browseable=yes

    #设置共享是否具有可写权限

    writable=yes

    #创建的文件权限为644
    create mask=0644

    #创建的文件目录为755
    directory mask=0755

    #设置允许访问共享的用户king1,king2

    valid users=king1,king2

    #设置该共享具有写入权限的用户, (可以为用户和用户组 @group)

    write list=king1;

    创建本地用户

    for i in king1 king2 ;do useradd $i -s /sbin/nologin ; echo 123456 |passwd –stdin $i;done

    将本地用户添加进入samba

    smbpasswd -a king1

    smbpasswd -a king2

    查看samba用户

    [root@yum ~]# pdbedit -L

    king1:1001:

    king2:1002:

    重启smba

    systemctl restart smb

    windows访问10.0.0.240账号king1 密码123456

     

    虚拟用户访问

    编辑smbusers配置文件

    vim /etc/samba/smbusers

    #增加如下信息

    king1 = ywx1 ywx2

    在smb.conf配置文件

    vim /etc/samba/smb.conf

    [global]

    #设置samba server需要加入的工作组或者域

    workgroup = MYGROUP

    #以share验证方式访问

    security = user

    #虚拟用户文件的映射

    username map=/etc/samba/smbusers

    #注释信息,宏%v显示samba的版本信息

    server string = Samba Server Version %v

    #设置共享账户文件的类型,默认使用tdbsam(TDB数据库文件)

    passdb backend = tdbsam

    #自定义共享名称
    [share]

    #共享描述
    comment=this is share directory!

    #共享目录路径
    path=/opt/share

    #设置共享是否允许guest账户访问
    public=yes

    #yes/no,设置共享是否可浏览,如果no则表示隐藏,需要通过“//ip/共享目录"进行访问
    browseable=yes

    #设置共享是否具有可写权限

    writable=yes

    #创建的文件权限为644
    create mask=0644

    #创建的文件目录为755
    directory mask=0755

    #设置允许访问共享的用户king1

    valid users=king1

    #设置该共享具有写入权限的用户, (可以为用户和用户组 @group)

    write list=king1;

    创建本地用户king1

    useradd king1 -s /sbin/nologin

    把本地用户king1添加进入samba

    smbpasswd -a king1

    重启samba

    systemctl restart smb

    windows访问登陆 账号ywx1 密码123456

     

    I have a dream so I study hard!!!
  • 相关阅读:
    Anaconda下载与安装
    短语,直接短语,句柄,素短语,最左素短语区分
    sublime text安装package control
    Json数据解析
    hbase shell命令
    Web三级联动,数据库到界面
    解决C#窗体项目在win10运行模糊的问题
    Java通过反射访问及修改类内的私有变量
    PyCharm更改.PyCharm配置文件夹存储位置
    MineCraft Forge开发mod踩坑记录
  • 原文地址:https://www.cnblogs.com/yaokaka/p/11619988.html
Copyright © 2011-2022 走看看