37.Samba 文件共享服务1--配置共享资源
阅读原文时间:2023年07月10日阅读: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: \\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.

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器