Samba是一个流行开源且被广泛使用的应用程序,它最终使得用户能够从同一网络上的任何Windows机器访问Linux共享目录。
Samba也称为网络文件系统,可以安装在Linux/Unix操作系统上。Samba本身是SMB(服务器消息块)和CIFS(通用 Internet 文件系统)的客户端/服务器协议。
使用Windows smbclient ( GUI ) 或文件浏览器,最终用户可以从任何Windows工作站连接到Samba服务器以访问共享文件和打印机。
本文将简单介绍如何在RHEL、CentOS以及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”目录。
‘ Public ‘ 目录是空的,因为没有在Samba共享中创建任何文件,接下来使用以下命令创建一些文件。
# cd /srv/tecmint/data # touch file{1..3}.txt
创建文件后,请尝试访问Samba 的“Public ”文件夹以查看文件。
这样就成功的配置并从Windows系统访问了samba 共享目录,但是,任何具有编辑和删除文件权限的人都可以访问此目录,当存储重要文件时,不建议这样做。
所以,在下面内容中,将简单介绍如何保护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共享,这次将会看到一个额外的“Private”目录。要访问此目录,需要使用Samba用户登录凭据进行身份验证,如下图所示。
此外,要从Linux服务器访问Samba共享目录,首先需要安装samba-client包并尝试连接。
# dnf install samba-client # smbclient ‘\2.168.43.121\private’ -U smbuser
总结
以上简单介绍了在RHEL、CentOS和Fedora系统中安装和配置Samba的全部内容,设置过程仅供参考。
如果大家需要在Windows电脑上访问Linux服务器共享目录的话,那么不妨安装Samba服务器进行访问,非常的方便和好用,当然具体的安装过程不清楚的话可以参考上述教程。