如何在 CentOS 8 上安装 Samba 服务器
本教程适用于这些操作系统版本
- CentOS 8
- CentOS 5.6
在此页
- 先决条件
- 安装 Samba 服务器
- 使用 Samba 创建公共共享
- 创建公共共享目录
- 配置Samba
- 配置 SELinux 和防火墙
- 创建用户和组
- 创建私人共享目录
- 配置Samba
- 从 Ubuntu 命令行访问 Samba 共享
Samba 是一种免费的开源软件,可用于在 Linux 和 Windows 系统之间共享文件、文件夹和打印机。它还用于身份验证和授权、名称解析和服务公告。它可以在不同的操作系统上运行,包括 Linux、Unix、OpenVMS 等等。
在本教程中,我们将学习如何在 CentOS 8 上安装 Samba 并将其配置为独立的共享服务器。
先决条件
- 一台运行 CentOS 8 的服务器。
- 在您的服务器上配置了根密码。
安装 Samba 服务器
默认情况下,Samba 软件包在 CentOS 默认存储库中可用。您可以使用以下命令安装它:
dnf install samba samba-common samba-client -y
安装 Samba 后,启动 SMB 服务并使用以下命令使其在系统重启后启动:
systemctl start smb
systemctl enable smb您现在可以使用以下命令验证 Samba 服务:
systemctl status smb
您应该得到以下输出:
? smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2020-03-02 23:03:30 EST; 8s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 2072 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 25028) Memory: 33.8M CGroup: /system.slice/smb.service ??2072 /usr/sbin/smbd --foreground --no-process-group ??2074 /usr/sbin/smbd --foreground --no-process-group ??2075 /usr/sbin/smbd --foreground --no-process-group ??2076 /usr/sbin/smbd --foreground --no-process-group
使用 Samba 创建公共共享
在本节中,我们将使用 Samba 创建一个公共共享,这样每个人都可以在没有密码的情况下访问公共共享目录。
创建公共共享目录
首先,创建一个名为 public 的共享文件夹,并在 public 目录中创建两个文件:
mkdir -p /samba/share/public
touch /samba/share/public/file1.txt
touch /samba/share/public/file2.txt接下来,使用以下命令分配必要的权限和所有权:
chmod -R 0755 /samba/share/
chmod -R 0755 /samba/share/public
chown -R nobody:nobody /samba/share
chown -R nobody:nobody /samba/share/public配置桑巴
接下来,您需要配置 Samba 以共享一个公共目录。
首先,使用以下命令创建 /etc/samba/smb.conf 文件的备份副本:
mv /etc/samba/smb.conf /etc/samba/smb.bak
接下来,创建一个新的 Samba 配置文件:
nano /etc/samba/smb.conf
添加以下行:
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = samba-server security = user map to guest = bad user dns proxy = no [Public] path = /samba/share/public browsable =yes writable = yes guest ok = yes read only = no
保存并关闭文件。然后,重新启动 Samba 服务以应用更改:
systemctl restart smb
接下来,使用以下命令测试 Samba 配置:
testparm
您应该看到以下输出:
Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] dns proxy = No map to guest = Bad User netbios name = SAMBA-SERVER security = USER server string = Samba Server %v idmap config * : backend = tdb [Public] guest ok = Yes path = /samba/share/public read only = No
配置 SELinux 和防火墙
接下来,使用以下命令在共享目录上设置正确的 SELinux 布尔值和安全上下文值:
setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
semanage fcontext -a -t samba_share_t "/samba/share/public(/.*)?"restorecon /samba/share/public 接下来,使用以下命令通过 firewalld 所有 Samba 服务:
firewall-cmd --add-service=samba --zone=public --permanent
firewall-cmd --reload从 Ubuntu Gnome 访问 Samba 共享
要访问 Samba 共享,请转到远程计算机,打开 Gnome 文件管理器并单击“连接到服务器”,如下所示:
提供您的 Samba 服务器 IP 地址,然后单击“连接”按钮。成功连接后,您应该会在以下屏幕中看到 Samba 共享:
现在,单击公共目录,您应该会在以下屏幕中看到您的文件:
从 Ubuntu 命令行访问 Samba 共享
您还可以从命令行访问 Samba 共享。
首先,使用以下命令列出所有可用的 Samba 共享:
smbclient -L //45.58.38.51
您应该看到以下输出:
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Sharename Type Comment --------- ---- ------- Public Disk IPC$ IPC IPC Service (Samba Server 4.10.4) Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Server Comment --------- ------- Workgroup Master --------- -------
您还可以使用 cifs 协议挂载 Samba 共享。为此,请使用以下命令安装 cifs-utils 包:
apt-get install cifs-utils -y
接下来,使用以下命令将 Samba 共享挂载到 /mnt 目录:
mount -t cifs //45.58.38.51/public /mnt/
系统将要求您提供密码,如下所示:
Password for //45.58.38.51/public:
只需按 Enter 键而不输入任何密码即可挂载 Samba 共享:
您现在可以访问 /mnt 目录中的 Samba 共享:
ls /mnt/
您应该看到以下输出:
file1.txt file2.txt
使用 Samba 创建私有共享
在本节中,我们将使用 Samba 创建私有共享,因此只有经过身份验证的用户才能访问私有共享目录。
创建用户和组
首先,使用以下命令创建一个名为 private 的组:
groupadd private
接下来,创建一个名为 privateuser 的新用户并将其添加到私有组中:
useradd -g private privateuser
接下来,使用以下命令为用户设置密码:
smbpasswd -a privateuser
输出:
New SMB password: Retype new SMB password: Added user privateuser.
创建私人共享目录
接下来,创建一个名为 private 的共享文件夹,并在 private 目录中创建两个文件:
mkdir -p /samba/share/private
touch /samba/share/private/private1.txt
touch /samba/share/private/private2.txt接下来,使用以下命令分配适当的权限和所有权:
chmod -R 0770 /samba/share/private
chown -R root:private /samba/share/private接下来,使用以下命令为私有目录配置 SELinux 上下文:
semanage fcontext –at samba_share_t "/samba/share/private(/.*)?"
restorecon /samba/share/private配置桑巴
接下来,打开 Samba 配置文件并定义私有共享:
nano /etc/samba/smb.conf
在文件末尾添加以下行:
[Private] path = /samba/share/private valid users = @private guest ok = no writable = yes browsable = yes
保存并关闭文件,然后重新启动 Samba 服务以应用更改:
systemctl restart smb
接下来,使用以下命令检查 Samba 配置:
testparm
您应该看到以下输出:
Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] dns proxy = No map to guest = Bad User netbios name = SAMBA-SERVER security = USER server string = Samba Server %v idmap config * : backend = tdb [Public] guest ok = Yes path = /samba/share/public read only = No [Private] path = /samba/share/private read only = No valid users = @private
从 Ubuntu 命令行访问 Samba 共享
首先,使用以下命令访问可用共享:
smbclient -L //45.58.38.51
您应该看到以下输出:
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Sharename Type Comment --------- ---- ------- Public Disk Private Disk IPC$ IPC IPC Service (Samba Server 4.10.4) Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Server Comment --------- ------- Workgroup Master --------- -------
接下来,连接到 Samba 服务器并使用以下命令列出可用的共享:
smbclient //45.58.38.51/private -U privateuser
系统将要求您提供密码,如下所示:
Enter privateuser's password:
输入您的密码并按 Enter 键以访问 Samba shell,如下所示:
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] smb: \>
现在,使用以下命令列出可用共享:
smb: \> ls
您应该看到以下输出:
. D 0 Tue Mar 3 10:03:22 2020 .. D 0 Tue Mar 3 10:01:56 2020 private1.txt N 0 Tue Mar 3 10:03:17 2020 private2.txt N 0 Tue Mar 3 10:03:22 2020 51194 blocks of size 2097152. 49358 blocks available
现在,使用以下命令退出 Samba shell:
smb: \>exit
您还可以将 Samba 共享挂载到 /opt 目录:
mount -t cifs -o user=privateuser //45.58.38.51/private /opt
系统将要求您提供密码,如下所示:
Password for //45.58.38.51/private: *********
提供您的密码并按 Enter 以安装 Samba 共享。
您现在可以在 /opt 目录中检查您的 Samba 共享,如下所示:
ls /opt/
输出:
private1.txt private2.txt
从 Ubuntu Gnome 访问 Samba 共享
要访问 Samba 共享,请转到远程计算机,打开 Gnome 文件管理器并单击“连接到服务器”,如下所示:
提供您的 Samba 服务器 IP 地址,然后单击“连接”按钮。成功连接后,您应该会在以下屏幕中看到 Samba 共享:
现在,单击私人目录,提供您的用户名和密码,然后单击连接按钮。您应该在以下屏幕中看到您的文件:
恭喜!您已经在 CentOS 8 上成功安装并配置了 Samba 服务器。