Ubuntu 20.04 创建 Samba 共享

Samba,也称为“服务器消息块”,是一种通用 Internet 文件系统协议,用于在 Linux 上通过网络共享文件、目录和打印服务。 它允许我们授予对共享目录的读、写和匿名访问权限。 对于在网络上同时使用 Windows 和 Linux 系统的用户来说,它非常有用。

在这篇文章中,我们将解释 Ubuntu 20.04 上安装和使用 Samba 来共享文件和目录。

先决条件

  • 云平台上的全新 Ubuntu 20.04 服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Ubuntu 20.04 作为至少 2GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到 Ubuntu 20.04 服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

apt-get update -y

第 2 步 – 安装 Samba 服务器

默认情况下,Samba 包包含在 Ubuntu 20.04 存储库中。 我们可以使用以下命令安装它:

apt-get install samba samba-common-bin acl -y

安装后,启动 Samba 服务并让它们在系统重新启动时启动:

systemctl start smbd nmbd
systemctl enable smbd nmbd

我们可以使用以下命令检查已安装的 Samba 版本:

smbd --version

输出:

Version 4.11.6-Ubuntu

第 3 步 – 使用 Samba 创建私有共享

在本节中,我们将向我们展示如何使用 Samba 创建私有共享,以便只有经过身份验证的用户才能访问该共享。

为此,请编辑 Samba 主配置文件:

nano /etc/samba/smb.conf

接下来,在文件末尾添加以下行:

[Private]
comment = private share
path = /data/private/
browseable = yes
guest ok = no
writable = yes
valid users = @samba

保存并关闭文件,然后使用以下命令创建一个新用户:

adduser user1

我们应该看到以下输出:

Adding user `user1' ...
Adding new group `user1' (1000) ...
Adding new user `user1' (1000) with group `user1' ...
Creating home directory `/home/user1' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for user1
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] Y

接下来,使用以下命令设置 Samba 密码:

smbpasswd -a user1

我们应该看到以下输出:

New SMB password:
Retype new SMB password:
Added user user1.

接下来,使用以下命令创建一个 Samba 组:

groupadd samba

接下来,将 user1 添加到 samba 组:

gpasswd -a user1 samba

接下来,创建我们在 smb.conf 文件中指定的共享文件夹:

mkdir -p /data/private
touch /data/private/file1

接下来,为 Samba 共享提供读写权限:

setfacl -R -m "g:samba:rwx" /data/private

接下来,使用以下命令检查 Samba 配置文件是否有任何错误:

testparm

接下来,重新启动 Samba 服务以应用更改:

systemctl restart smbd nmbd

第 4 步 – 使用 Samba 创建公共共享

在本节中,我们将向我们展示如何使用 Samba 创建公共共享,这样每个人都可以在不提供用户名和密码的情况下访问公共共享。

要创建公共共享,请编辑 Samba 主配置文件:

nano /etc/samba/smb.conf

在文件末尾添加以下行:

[Public]
comment = public share
path = /data/public/
browseable = yes
writable = yes
guest ok = yes

保存并关闭文件,然后创建一个公共目录:

mkdir -p /data/public/
touch /data/public/file2

接下来,在公共目录上设置适当的权限:

setfacl -R -m "u:nobody:rwx" /data/public

接下来,重新启动 Samba 服务以应用更改:

systemctl restart smbd nmbd

第 5 步 – 从 Linux 访问 Samba 共享

为了访问 Samba 共享,我们需要在 Linux 系统上安装 Samba 客户端。 我们可以使用以下命令安装它:

apt-get install smbclient cifs-utils -y

接下来,运行以下命令从 Samba 服务器访问私有共享:

smbclient //samba-ip-address/private -U user1

系统将要求我们提供 user1 的密码:

Enter WORKGROUP\user1's password: 
Try "help" to get a list of possible commands.

连接后,运行以下命令列出 Samba 共享:

smb: \> list
0:	server=69.87.221.84, share=private

接下来,列出私有共享目录中的所有文件:

smb: \> ls

我们应该看到以下输出:

  .                                   D        0  Sun Jun 27 08:17:58 2021
  ..                                  D        0  Sun Jun 27 08:18:13 2021
  file1                               N        0  Sun Jun 27 08:17:58 2021

		51538400 blocks of size 1024. 47348972 blocks available

接下来,使用以下命令退出 Samba shell:

smb: \> exit

如果要连接到公共共享,请运行以下命令:

smbclient //samba-ip-address/public

只需按 Enter 即可,无需提供任何密码:

Enter WORKGROUP\root's password: 

Try "help" to get a list of possible commands.
smb: \>

接下来,运行以下命令以列出公共共享中的所有文件:

smb: \> ls

输出:

  .                                   D        0  Sun Jun 27 08:18:17 2021
  ..                                  D        0  Sun Jun 27 08:18:13 2021
  file2                               N        0  Sun Jun 27 08:18:17 2021

		51538400 blocks of size 1024. 47348972 blocks available

第 6 步 – 在 Linux 上挂载 Samba Share

Samba 还允许我们将共享目录挂载到客户端系统,以便我们可以访问和使用它。

首先,在要挂载 Samba 共享的客户端系统上创建一个目录:

mkdir /mount

接下来,运行以下命令将 Private 共享目录挂载到客户端系统:

mount -t cifs -o username=user1 //samba-ip-address/private /mount

系统将要求我们提供 user1 的密码来挂载目录:

Password for user1@//69.87.221.84/private:  ********* 

接下来,使用以下命令验证挂载的目录:

df -h

我们应该会看到我们的 Private 共享目录安装在 /mount 目录中:

Filesystem              Size  Used Avail Use% Mounted on
udev                    981M     0  981M   0% /dev
tmpfs                   199M  2.2M  197M   2% /run
/dev/sda1                50G  1.9G   46G   4% /
tmpfs                   994M     0  994M   0% /dev/shm
tmpfs                   5.0M     0  5.0M   0% /run/lock
tmpfs                   994M     0  994M   0% /sys/fs/cgroup
tmpfs                   199M     0  199M   0% /run/user/0
//69.87.221.84/private   50G  4.0G   46G   9% /mount

现在,使用以下命令在本地访问 Samba 共享:

ls /mount/

我们应该看到以下输出:

file1

在上面的指南中,我们学习了如何安装 Samba 并使用它在 Linux 系统之间共享文件和目录。 试一试来自 的 VPS 托管!

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论