美文网首页Linux学习|Gentoo/Arch/FreeBSDLinux
RHEL 平台基于 Samba 服务配置文件共享

RHEL 平台基于 Samba 服务配置文件共享

作者: mlya | 来源:发表于2018-10-27 22:33 被阅读4次

    基于 Samba 服务实现远程文件共享

    本文参考刘遄老师的 Linux 就该这么学撰写.

    Samba 服务

    FTP 是一种跨平台的文件传输解决方案, 还有一种解决方案是通过 Samba 服务来实现跨平台的文件共享.

    SMB (Server Message Block) 协议是微软公司和英特尔公司共同制定的协议, 可以完成局域网内文件或打印机等资源的共享. Tridgwell 为了解决 Linux 系统的文件共享, 基于 SMB 协议开发了 SMBServer 服务程序, 起名为 Samba, 是一种舞蹈的名字.

    安装 Samba 服务

    yum install samba
    

    配置 Samba 服务

    Samba 的主配置文件位于 /etc/samba/smb.conf 中. 详细的配置文件的介绍帮助可以使用 man 5 smb.conf 来查看. 完整的 Samba 配置参数非常多, 完整的帮助文档的下载地址, 我们不一定能够都用到, 我们可能只会用到其中的一部分.

    Iptables 配置

    SMB 协议需要使用到 139 和 445 端口, 我们需要把这两个端口打开:

    iptables -I INPUT -p tcp -dport 139 -j ACCEPT
    iptables -I INPUT -p tcp -dport 445 -j ACCEPT
    
    service iptables save
    

    SELinux 配置

    在配置之前, 我们需要先进行 SELinux 的配置:

    # 允许 Samba 服务使用 useradd 和 groupadd
    setsebool -P samba_domain_controller on
    
    # 如果想要分享 home 目录, 需要开启 samba_enable_home_dirs
    setsebool -P samba_enable_home_dirs on
    
    # 如果你新建了一个目录, 你需要将其安全上下文设置为 samba_share_t, 不要对系统目录做这个操作, 因为系统目录已经有了这个上下文
    
    # 使用 Boolean 值 samba_export_all_ro 或 samba_export_all_rw 来共享系统目录.
    # 只读
    setsebool -P samba_export_all_ro on
    # 可写
    setsebool -P samba_export_all_rw on
    

    配置文件结构

    配置文件是分块的, 每一块以一个中括号包裹的唯一标识符来确定, 默认配置文件包括 [global], [homes] 以及 [printers].

    global 配置

    网络相关

    # Windows 的域名称或者工作组名称
    # workgroup = MYGROUP
    
    # 描述字段
    server string= Samba Server Version %v
    
    # 指定一个绑定到主机的服务器名称
    # netbios name = MYSERVER
    
    # 用于指定 Samba 去监听哪个网卡, 注意不要忘记写 localhost interface(lo)
    interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
    

    日志选项

    log file = /var/log/samba/log.%m
    # max size of the log file, 50KB
    max log size = 50
    

    安全选项

    这一部分可能配置选项很多的, Samba 的配置文档可以写一本书来详细说明, 这里只介绍我所了解的常用的配置方法.

    # Samba 的安全模式, share 和 server 在文档中说明不再使用, 现在使用 user
    security = user
    # 存储用户信息的方式, 现在使用的主要有 tdbsam 和 ldapsam 两种.
    passdb backend = tdbsam
    

    共享文件夹

    接下来我们创建一个共享文件夹的配置区域, 这一部分的参数都很好理解.

    [myshare]
        comment = My share
        # 共享文件夹的路径
        path = /shared_folder
        # 非公开
        pubic = no
        # 可写入
        writable = yes
    

    创建用户

    首先我们要创建一个系统用户, 用于持有 Samba 的文件.

    useradd smbuser
    

    然后使用 pdbedit 命令来设定 Samba 账户

    [root@localhost /]# pdbedit -a -u smbuser
    new password:
    retype new password:
    Unix username:        smbuser
    NT username:
    Account Flags:        [U          ]
    User SID:             S-1-5-21-2183877677-2742592103-2159681561-1000
    Primary Group SID:    S-1-5-21-2183877677-2742592103-2159681561-513
    Full Name:
    Home Directory:       \\localhost\smbuser
    HomeDir Drive:
    Logon Script:
    Profile Path:         \\localhost\smbuser\profile
    Domain:               LOCALHOST
    Account desc:
    Workstations:
    Munged dial:
    Logon time:           0
    Logoff time:          Wed, 06 Feb 2036 10:06:39 EST
    Kickoff time:         Wed, 06 Feb 2036 10:06:39 EST
    Password last set:    Sat, 27 Oct 2018 08:50:26 EDT
    Password can change:  Sat, 27 Oct 2018 08:50:26 EDT
    Password must change: never
    Last bad password   : 0
    Bad password count  : 0
    Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    

    修改目录权限

    刚才创建的共享目录是属于 root 的, 所以挂载之后是没有权限写的:

    [root@localhost /]# ls -ld shared_folder/
    drwxr-xr-x. 2 root root 6 Oct 27 08:47 shared_folder/
    

    我们需要修改其所属:

    chown -R smbuser:smbuser /shared_folder
    

    修改 SELinux 设置:

    semanage -a -t samba_share_t /shared_folder
    restorecon -Rv /shared_folder
    

    重启 Samba 服务

    systemctl restart smb
    systemctl enable smb
    

    测试 Samba 服务

    以下是基于 MAC 系统进行测试:

    打开 Finder, 快捷键 cmd+k, 打开连接服务器窗口, 按照下面的形式输入服务器地址.

    image-20181027222811300

    点击连接之后, 会跳出登录界面:

    image-20181027222922766

    输入正确的用户名和密码, 就可以登录到服务器中了.

    登陆后, 可以测试一下能否修改文件, 上传文件等操作, 以检测权限是否配置正确, 如果发现不能, 可以检查 SELinux 设置和文件目录权限配置.

    总结

    到此, SMB 服务的简单配置就完成了, SMB 是一个非常方便的文件共享服务, 可以轻松的部署在局域网中, 非常的方便.

    相关文章

      网友评论

        本文标题:RHEL 平台基于 Samba 服务配置文件共享

        本文链接:https://www.haomeiwen.com/subject/kiijtqtx.html