zoukankan      html  css  js  c++  java
  • 37.Samba 文件共享服务1--配置共享资源

    1.Samba 服务程序的主配置文件包括全局配置参数和区域配置参数。全局配置参数用于设置整体的资源共享环境,对里面的每一个独立的共享资源都有效。区域配置参数则用于设置单独的共享资源,且仅对该资源有效。

      创建共享资源的方法很简单,只要将表中的参数写入到Samba 服务程序的主配置文件中,然后重启该服务即可。

       

      1)第 1 步:创建用于访问共享资源的账户信息。在centos 7 系统中,Samba 服务程序默认使用的是用户口令认证模式(user)。这种认证模式可以确保仅让有密码且受信任的用户访问共享资源,而且验证过程也十分简单。

      不过,只有建立账户信息数据库之后,才能使用用户口令认证模式。另外,Samba 服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱不堪,由此引发错误。

      pdbedit 命令用于管理SMB 服务程序的账户信息数据库,格式为“pdbedit [选项] 账户”。

      在第一次把账户信息写入到数据库时需要使用-a 参数,以后在执行修改密码、删除账户等操作时就不再需要该参数了。pdbedit 命令中使用的参数以及作用如表所示  

        

    [root@localhost ~]# id centos
    uid=1000(centos) gid=1000(centos) groups=1000(centos)
    [root@localhost ~]# pdbedit -a -u centos
    new password:
    retype new password:
    Unix username:        centos
    NT username:          
    Account Flags:        [U          ]
    User SID:             S-1-5-21-1589240372-1312249903-1894174146-1000
    Primary Group SID:    S-1-5-21-1589240372-1312249903-1894174146-513
    Full Name:            centos
    Home Directory:       \localhostcentos
    HomeDir Drive:        
    Logon Script:         
    Profile Path:         \localhostcentosprofile
    Domain:               LOCALHOST
    Account desc:         
    Workstations:         
    Munged dial:          
    Logon time:           0
    Logoff time:          Wed, 06 Feb 2036 23:06:39 CST
    Kickoff time:         Wed, 06 Feb 2036 23:06:39 CST
    Password last set:    Sat, 05 Sep 2020 10:36:44 CST
    Password can change:  Sat, 05 Sep 2020 10:36:44 CST
    Password must change: never
    Last bad password   : 0
    Bad password count  : 0
    Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

      2)第 2 步:创建用于共享资源的文件目录。在创建时,不仅要考虑到文件读写权限的问题,而且由于/home 目录是系统中普通用户的家目录,因此还需要考虑应用于该目录的SELinux 安全上下文所带来的限制。

      在前面对Samba 服务程序配置文件中的注释信息进行过滤时,这些过滤的信息中就有关于SELinux 安全上下文策略的说明,我们只需按照过滤信息中有关SELinux安全上下文策略中的说明中给的值进行修改即可。

      修改完毕后执行restorecon 命令,让应用于目录的新SELinux 安全上下文立即生效。  

    [root@localhost ~]# mkdir /home/database
    [root@localhost ~]# chown -Rf centos:centos /home/database
    [root@localhost ~]# semanage fcontext -a -t samba_share_t /home/database
    [root@localhost ~]# restorecon -Rv /home/database
    restorecon reset /home/database context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:samba_share_t:s0

    3)第 3 步:设置SELinux 服务与策略,使其允许通过Samba 服务程序访问普通用户家目录。执行getsebool 命令,筛选出所有与Samba 服务程序相关的SELinux 域策略,根据策略的名称(和经验)选择出正确的策略条目进行开启即可:

    [root@localhost ~]# getsebool -a |grep samba
    samba_create_home_dirs --> off
    samba_domain_controller --> off
    samba_enable_home_dirs --> off
    samba_export_all_ro --> off
    samba_export_all_rw --> off
    samba_load_libgfapi --> off
    samba_portmapper --> off
    samba_run_unconfined --> off
    samba_share_fusefs --> off
    samba_share_nfs --> off
    sanlock_use_samba --> off
    tmpreaper_use_samba --> off
    use_samba_home_dirs --> off
    virt_use_samba --> off
    [root@localhost ~]# setsebool -P samba_enable_home_dirs on

    4)在Samba 服务程序的主配置文件中,根据上表 所提到的格式写入共享信息。在原始的配置文件中,[homes]参数为来访用户的家目录共享信息,[printers]参数为共享的打印机设备。

      这两项如果在今后的工作中不需要,可以手动删除,这没有任何问题。  

    [root@localhost ~]# vim /etc/samba/smb.conf
    
      1 [global]
      2         workgroup = SAMBA
      3         security = user
      4         passdb backend = tdbsam
      5         printing = cups
      6         printcap name = cups
      7         load printers = yes
      8         cups options = raw
      9 [homes]
     10         comment = Home Directories
     11         valid users = %S, %D%w%S
     12         browseable = No
     13         read only = No
     14         inherit acls = Yes
     15 [printers]
     16         comment = All Printers
     17         path = /var/tmp
     18         printable = Yes
     19         create mask = 0600
     20         browseable = No
     21 [print$]
     22         comment = Printer Drivers
     23         path = /var/lib/samba/drivers
     24         write list = @printadmin root
     25         force group = @printadmin
     26         create mask = 0664
     27         directory mask = 0775

      5)Samba 服务程序的配置工作基本完毕。接下来重启smb 服务(Samba 服务程序在Linux 系统中的名字为smb)并清空iptables 防火墙,然后就可以检验配置效果了。  

    [root@localhost ~]# systemctl restart smb
    [root@localhost ~]# systemctl enable smb
    Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
    [root@localhost ~]# iptables -F
    [root@localhost ~]# service iptables save
    iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

    2.在Windows中访问samba共享

      

      

      

    3.

      

  • 相关阅读:
    SpringMVC之@RequestParam @RequestBody @RequestHeader 等详解
    RabbitMQ基础介绍
    linux查看tomcat日志
    HTML-01
    Ajax和json
    使用VBScript实现设置系统环境变量的小程序
    WinForm中重绘TabControl选项卡标题
    Action向视图传值的6种方式
    C#中常用的系统内置委托
    C#中的扩展方法
  • 原文地址:https://www.cnblogs.com/xinghen1216/p/13738262.html
Copyright © 2011-2022 走看看