网站搜索

在 RHEL 8 上安装 Samba4 以实现 Windows 上的文件共享


Samba是一个开源、快速、安全、稳定且应用广泛的网络文件系统,为所有使用SMB/CIFS协议的客户端提供文件共享和打印服务,例如如 Linux、所有版本的 DOS 和 Windows、OS/2 以及许多其他操作系统。

在上一篇文章中,我们解释了如何在 CentOS/RHEL 7 上安装 Samba4,以在 CentOS/RHEL 系统和 Windows 计算机之间进行基本文件共享。我们在其中学习了如何配置 Samba 以在计算机之间进行匿名和安全文件共享。

在本文中,我们将介绍如何在 RHEL 8 上安装和配置 Samba4,以实现与 Windows 计算机的基本文件共享。

在 RHEL 8 中安装 Samba4

1. 要安装 Samba 4 及其依赖项,请使用 DNF 包管理器,如图所示。

dnf install samba samba-client samba-common

2. 安装完成后,启动 Sambe 服务,使其在系统启动时自动启动,并使用 systemctl 命令验证该服务,如下所示。

systemctl start smb
systemctl enable smb
systemctl status smb

3.接下来,如果您配置了firewalld,则需要在防火墙配置中添加Samba服务,以允许通过系统访问共享目录和文件。

sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload

在 RHEL 8 上配置 Samba4

4.要配置Samba进行文件共享,您需要创建默认Samba配置文件的备份副本,该文件附带预配置设置和各种配置指令。

cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

现在,进一步配置 samba 以实现匿名和安全的文件共享服务,如下所述。

在 RHEL 8 上设置 Samba4 匿名文件共享

5. 在本节中,第一步是创建将在服务器上存储文件的共享目录。然后对目录定义适当的权限,如图所示。

mkdir -p /srv/samba/anonymous
chmod -R 0777 /srv/samba/anonymous
chown -R nobody:nobody /srv/samba/anonymous

6. 接下来,使用chcon 实用程序,更改创建的 samba 共享目录的 SELinux 安全上下文。

 
chcon -t samba_share_t /srv/samba/anonymous

7. 现在,使用您最喜欢的基于文本的文件编辑器打开配置文件,以配置共享目录上的匿名不安全文件共享。

vim /etc/samba/smb.conf

修改以下全局参数并添加匿名共享部分。请注意,您可以根据需要设置自己的值(请阅读 man smb.conf 了解更多信息)。

[global]
        workgroup = WORKGROUP
        netbios name = rhel
        security = user
...
[Anonymous]
        comment = Anonymous File Server Share
        path = /srv/samba/anonymous
        browsable =yes
        writable = yes
        guest ok = yes
        read only = no
        force user = nobody

保存文件中的更改并关闭。

8.然后运行以下命令验证配置是否正确。

testparm 
Load smb config files from /etc/samba/smb.conf 
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) 
Unknown parameter encountered: "netbios" 
Ignoring unknown parameter "netbios" 
Processing section "[homes]" 
Processing section "[printers]" 
Processing section "[print$]" 
Processing section "[Anonymous]" 
Loaded services file OK. 
Server role: ROLE_STANDALONE 

Press enter to see a dump of your service definitions 

Global parameters 
[global] 
       printcap name = cups 
       security = USER 
       idmap config * : backend = tdb 
       cups options = raw 
[homes] 
       browseable = No 
       comment = Home Directories 
       inherit acls = Yes 
       read only = No 
       valid users = %S %D%w%S 

[printers] 
       browseable = No 
       comment = All Printers 
       create mask = 0600 
       path = /var/tmp 
       printable = Yes                                                                                                                           
                                                                                                                          
[print$]                                                                                                                                
       comment = Printer Drivers                                                                                                                  
       create mask = 0664                                                                                                                         
       directory mask = 0775                                                                                                                      
       force group = @printadmin                                                                                                                  
       path = /var/lib/samba/drivers 
       write list = @printadmin root 


[Anonymous] 
       comment = Anonymous File Server Share 
       force user = nobody 
       guest ok = Yes 
       path = /srv/samba/anonymous 
       read only = No

9. 如果 Samba 配置正常,请继续并重新启动 samba 服务以使最近的更改生效。

systemctl restart smb

10.最后,测试匿名共享是否工作正常,登录您的Windows计算机,打开Windows资源管理器,单击网络,然后点击RHEL主机,或者使用服务器IP地址访问(在服务器上运行ip add命令可以查看IP地址)。

e.g. 2.168.43.198

11. 接下来,打开Anonymous目录并尝试在其中添加文件以与其他用户共享。

在 RHEL 8 上设置 Samba4 安全文件共享

12.为了创建安全共享目录,您需要创建一个Samba系统组。安全共享的所有用户都将添加到该组中。您可以使用groupadd命令创建组,如下所示。

groupadd smbgrp

然后使用 usermod 命令将所有用户(例如 howtoing)添加到组中,并为每个用户设置密码,如图所示。

usermod tecmint -aG smbgrp
smbpasswd -a tecmint

13. 接下来,创建将安全存储共享文件的安全目录,然后对该目录设置适当的权限。另外,按如下方式更改目录的 SELinux 安全上下文。

mkdir -p /srv/samba/secure
chmod -R 0770 /srv/samba/secure
chown -R root:smbgrp /srv/samba/secure
chcon -t samba_share_t /srv/samba/secure

14.接下来,打开配置文件进行编辑。

vim /etc/samba/smb.conf

并在文件末尾添加以下部分。

[Secure]
        comment = Secure File Server Share
        path =  /srv/samba/secure
        valid users = @smbgrp
        guest ok = no
        writable = yes
        browsable = yes

保存更改并关闭文件。

15. 接下来,通过运行testparm 命令再次验证 samba 配置。

testparm

16. 重新启动 Samba 服务以应用更改。

systemctl restart smb.service
systemctl restart nmb.service

测试安全 Samba 文件共享

17.最后,测试安全共享是否工作正常。在您的 Windows 计算机上,打开 Windows 资源管理器,单击网络,然后单击 RHEL 主机,或者尝试使用以下方式访问服务器其 IP 地址如前所述。

e.g. 2.168.43.198

系统会要求您输入用户名和密码来登录 RHEL 8 服务器。

18.登录后,您将获得所有 samba 共享目录的列表。现在,您可以通过在安全目录中添加文件来与网络上其他允许的用户安全地共享一些文件。

就这样!在本文中,我们展示了如何在 RHEL 8 中安装和配置 Samba 4,以便与 Windows 计算机进行匿名且安全的文件共享。您对本指南有任何疑问或意见,请使用下面的反馈表联系我们。