在 Ubuntu 20.04 上轻松安装和配置 Samba 文件服务器

在本教程中,您将学习如何在 Ubuntu 20.04 上轻松安装和配置 Samba 文件服务器。 Samba 是一个开源套件,它实现了服务器消息块 (SMB) 协议。 Microsoft Windows 操作系统和 OS/2 操作系统使用 SMB 来执行客户端-服务器网络以进行文件和打印机共享以及相关操作。 运行在Unix系统上,它允许Windows在Unix主机上共享文件和打印机,也允许Unix用户访问Windows系统共享的资源。 因此,对于网络上同时拥有 Windows 和 Unix 系统的任何人来说,它都是一个非常有用的网络工具。

在 Ubuntu 20.04 上轻松安装和配置 Samba 文件服务器

Samba 可以运行为:

  • Active Directory (AD) 或 NT4 域成员
  • 独立服务器
  • NT4 主域控制器 (PDC) 或备份域控制器 (BDC)

在此设置中,我们将在 Ubuntu 20.04 上将 Samba 作为独立文件服务器运行。

逐步完成以下步骤,了解如何在 Ubuntu 20.04 上轻松安装和配置 Samba 文件服务器。

在 Ubuntu 20.04 上安装 Samba

要在 Ubuntu 20.04 上轻松安装和配置 Samba 文件服务器,您首先需要通过运行以下命令来安装 Samba 软件包;

apt update
apt install samba smbclient cifs-utils

在 Ubuntu 20.04 上配置 Samba 文件服务器

安装 Samba 软件包后,继续在 Ubuntu 20.04 上配置 Samba 文件服务器。 如前所述,在此设置中,我们将在 Ubuntu 20.04 上将 Samba 作为独立文件服务器运行。 这意味着 Samba 未配置为任何目录服务的成员,因此本地系统数据库将用于验证用户访问共享文件的身份。

创建共享目录/文件夹

创建一个目录,您将在其中放置要共享的文件。 您可以创建公共或私人共享文件夹。

例如,我们使用 /smb-民众/smb-private 作为我们在此设置中的共享目录。

mkdir /smb-public
mkdir /smb-private

我们将允许公共访问公共文件夹和一些用户访问私人文件夹。

在 Ubuntu 20.04 上配置 Samba 文件服务器

打开Samba配置文件进行编辑;

vim /etc/samba/smb.conf

全局 Samba 配置选项

下面是我们的全局 Samba 配置,删除了注释行。

[global]    unix charset = UTF-8    workgroup = WORKGROUP    server string = %h server (Samba, Ubuntu)    log file = /var/log/samba/log.%m    log level = 1    max log size = 1000    logging = file    panic action = /usr/share/samba/panic-action %d    server role = standalone server    obey pam restrictions = yes    unix password sync = yes    passwd program = /usr/bin/passwd %u    passwd chat = *Entersnews*spassword:* %nn *Retypesnews*spassword:* %nn *passwordsupdatedssuccessfully* .    pam password change = yes    map to guest = bad user    usershare allow guests = yes

咨询 man smb.conf 有关所用配置选项的说明。

配置文件或打印机共享

现在,我们将只配置文件共享。 因此,在 Samba 配置文件的末尾,添加共享名称和配置选项。

在上面,我们创建了两个目录,一个公共目录和一个私有目录。 我们将公共共享设置为可公开访问,私有共享将需要身份验证才能访问。

公共共享配置

示例公共共享配置。

[publicshare]    path = /smb-public    writable = yes    guest ok = yes    guest only = yes    force create mode = 775    force directory mode = 775

私有共享配置

示例私有共享配置。

[privateshare]    path = /smb-private    writable = yes    guest ok = no    valid users = @smbinternal    force create mode = 770    force directory mode = 770    inherit permissions = yes

创建 Samba 共享用户组

上述私人共享将只允许用户 smbinternal 组访问共享。

因此,让我们创建一个 smbinternal 组并将特定用户添加到该组以允许访问私有共享。

groupadd smbinternal

更新共享的权限

更改共享私有目录的组;

chgrp -R smbinternal /smb-private/
chgrp -R smbinternal /smb-public

设置目录的权限;

chmod 2770 /smb-private/
chmod 2775 /smb-public

上面的值 2 代表 SGID 位。 这使得创建的新文件/文件夹继承父目录的组,而不是将其设置为用户主组。

接下来,为您希望授予对私有共享访问权限的用户创建本地帐户。 用户不需要有外壳。

useradd -M -s /sbin/nologin demouser

将用户添加到 内部的 团体;

usermod -aG smbinternal demouser

为用户创建SMB密码;

smbpasswd -a demouser

启用 Samba 帐户:

smbpasswd -e demouser

验证 Samba 配置

建议您在每次更新 Samba 配置时验证 /etc/samba/smb.conf 文件使用 testparm 公用事业

您可以简单地执行它如下:

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 ...

如果出现任何错误,请先修复它,然后才能继续。

重启桑巴;

systemctl restart smbd

在共享上创建测试文件/文件夹;

mkdir /smb-private/demofolder-priv /smb-public/demofolder-pub
touch /smb-private/demofile-priv /smb-public/demofile-pub

允许远程访问 Samba

允许从特定网络远程访问 Samba;

ufw allow from 192.168.59.0/24 to any app Samba

从客户端访问 SMB 共享

要了解如何从各种客户端访问 SMB 共享,请按照以下指南进行操作;

如何在 Linux 和 Windows 系统上访问 Samba 共享

关于如何在 Ubuntu 20.04 上轻松安装和配置 Samba 文件服务器的教程到此结束。

在 Debian 10 上设置 Samba 文件服务器的快速方法

在 CentOS 8 上安装和设置 GlusterFS 存储集群

如何在 Ubuntu 18.04 服务器上配置 NFS 服务器

如何在 RHEL/CentOS 7 上安装和配置 NFS 服务器