暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何在 RHEL、CentOS 和 Fedora 中安装 Samba 服务器

运维漫谈 2021-12-20
1759

Samba是一个开源和最流行的广泛使用的程序,用户可以从同一网络上的任何 Windows 机器访问Linux共享目录。

Samba 也称为网络文件系统,可以安装在Linux/Unix操作系统上,Samba 本身是SMB(服务器消息块)和CIFS(通用 Internet 文件系统)的客户端/服务器协议。

使用 Windows smbclient ( GUI ) 或文件浏览器,最终用户可以从任何 Windows 工作站连接到 Samba 服务器以访问共享文件和打印机。

本教程解释了如何在RHEL、CentOS Stream和Fedora系统上安装Samba 服务器(文件服务器),我们还将学习如何配置它以使用SMB协议通过网络共享文件,以及我们将看到如何创建和在 samba 用户的数据库上添加系统用户。

为了演示,我们使用主机名tecmint 的RHEL 8 系统,IP 地址为192.168.43.121。

在 RHEL 中安装和配置 Samba

要开始使用 samba,您需要安装 samba 核心包和samba-client包,如下所示:

# dnf install samba samba-common samba-client 

安装完所有 samba 后,您需要为 samba 共享目录配置适当的权限和所有权,以便与同一本地网络中的所有客户端计算机共享。

# mkdir -p /srv/tecmint/data
# chmod -R 755 /srv/tecmint/data
# chown -R  nobody:nobody /srv/tecmint/data
# chcon -t samba_share_t /srv/tecmint/data

接下来我们要在文件中配置Samba共享目录smb.conf,这是Samba的主要配置文件。

# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
# vim /etc/samba/smb.conf

添加以下配置行,这些行定义有关谁可以访问网络上的 samba 共享的策略。

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = rocky-8
security = user
map to guest = bad user
dns proxy = no
ntlm auth = true


[Public]
path =  /srv/tecmint/data
browsable =yes
writable = yes
guest ok = yes
read only = no

保存并退出配置文件。

接下来,验证 samba 配置是否有错误。

# testparm

如果一切正常,请确保启动、启用和验证 Samba 守护程序的状态。

# systemctl start smb
# systemctl enable smb
# systemctl start nmb
# systemctl enable nmb
# systemctl status smb
# systemctl status nmb

从 Windows 访问 Samba 共享

要从 Windows 机器访问 Samba 共享,请按Windows徽标键 + R启动运行对话框并输入 samba 服务器的 IP 地址,如图所示。

连接后,您将看到/srv/tecmint/data目录中我们 samba 共享的“公共”目录。

' Public ' 目录是空的,因为我们没有在 Samba 共享中创建任何文件,让我们使用以下命令创建一些文件。

# cd /srv/tecmint/data
# touch file{1..3}.txt

创建文件后,请尝试访问 Samba 的“公共”文件夹以查看文件。

我们已成功配置并从 Windows 访问了我们的 samba 共享,但是,任何具有编辑和删除文件权限的人都可以访问我们的目录,当您托管重要文件时,不建议这样做。

在 RHEL 中保护 Samba 共享目录

为了保护我们的 Samba 共享,我们需要创建一个新的 samba 用户。

# useradd smbuser
# smbpasswd -a smbuser

接下来,创建一个新组并将新的 samba 用户添加到该组中。

# sudo groupadd smb_group
# sudo usermod -g smb_group smbuser

此后,创建另一个安全的 samba 共享目录,以便 samba 用户安全地访问文件。

# mkdir -p /srv/tecmint/private
# chmod -R 770 /srv/tecmint/private
# chcon -t samba_share_t /srv/tecmint/private
# chown -R root:smb_group /srv/tecmint/private

再次访问 Samba 配置文件。

# vi /etc/samba/smb.conf

添加这些行来定义以保护 samba 共享。

[Private]
path = /srv/tecmint/private
valid users = @smb_group
guest ok = no
writable = no
browsable = yes

保存更改并退出。

最后,如图所示重新启动所有 samba 守护进程。

$ sudo systemctl restart smb
$ sudo systemctl restart nmb

现在尝试访问 Samba 共享,这次您将看到一个额外的“私人”目录。要访问此目录,您需要使用 Samba 用户的凭据进行身份验证,如图所示。

要从 Linux 机器访问 samba 共享,首先,安装 samba-client 包并尝试连接。

# dnf install samba-client 
# smbclient ‘\2.168.43.121\private’ -U smbuser

这篇关于在RHEL、CentOS Stream和Fedora上安装和配置 Samba 的文章到此结束。

文章转载自运维漫谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论