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:       \\localhost\centos
HomeDir Drive:        
Logon Script:         
Profile Path:         \\localhost\centos\profile
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.

  

 

posted on 2020-09-27 11:04  星痕1216  阅读(276)  评论(0编辑  收藏  举报