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

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

在 Debian 10 上设置 Samba 文件服务器

Samba 可以运行为:

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

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

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

在 Debian 10 上安装 Samba

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

apt update
apt install samba smbclient cifs-utils

在 Debian 10 上设置 Samba 文件服务器

安装 Samba 软件包后,继续在 Debian 10 上设置 Samba 文件服务器。

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

创建共享 Samba 目录/文件夹

创建一个目录,您将在其中放置要共享的文件。

您可以创建公共或私人共享文件夹。

例如,在此设置中,我们使用 /民众 /private 分别作为我们的公共和私有共享目录。

mkdir /public
mkdir /private

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

在 Debian 10 上设置 Samba 文件服务器

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

vim /etc/samba/smb.conf

全局 Samba 配置选项

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

[global]    workgroup = WORKGROUP    log file = /var/log/samba/log.%m    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 共享

现在,我们将只配置文件共享。

因此,在 Samba 配置文件的末尾,添加共享名称和相应的配置选项。

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

公共共享配置

示例公共共享配置。

[public]    comment = Public Folder    path = /public    writable = yes    guest ok = yes    guest only = yes    force create mode = 775    force directory mode = 775

私有共享配置

示例私有共享配置。

[private]    comment = Private Folder    path = /private    writable = yes    guest ok = no    valid users = @smbshare    force create mode = 770    force directory mode = 770    inherit permissions = yes

创建 Samba 共享用户组

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

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

groupadd smbshare

更新共享的权限

更改共享私有目录的组;

chgrp -R smbshare /private/
chgrp -R smbshare /public

设置目录的权限;

chmod 2770 /private/
chmod 2775 /public

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

创建 Samba 用户

接下来,为您希望授予对私有共享访问权限的用户创建本地帐户。 用户不需要有 shell,因为他们不会用于登录系统。

useradd -M -s /sbin/nologin demouser

将用户添加到 共享 团体;

usermod -aG smbshare demouser

您可以使用以下命令组合上述两个命令:

useradd -M -s /sbin/nologin -G smbshare demouser

验证用户;

id demouser
uid=1001(demouser) gid=1002(demouser) groups=1002(demouser),1001(smbshare)

为用户创建SMB密码;

smbpasswd -a demouser

启用 Samba 帐户:

smbpasswd -e demouser

验证 Samba 配置

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

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

testparm

样本输出;

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Registered MSG_REQ_POOL_USAGE Registered MSG_REQ_DMALLOC_MARK and LOG_CHANGED Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[homes]" Processing section "[printers]" Processing section "[print$]" Processing section "[public]" Processing section "[private]" Loaded services file OK. Server role: ROLE_STANDALONE ...

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

在 Debian 10 上重启 Samba 服务;

systemctl restart nmbd

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

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

允许远程访问 Samba

允许从特定网络/IP 地址远程访问 Samba。 更换网络, 192.168.59.0/24 适当地。

ufw allow from 192.168.59.0/24 to any app Samba

从客户端访问 SMB 共享

在本地测试对共享的访问;

smbclient 'localhostpublic'
Enter WORKGROUProot's password: ENTER for no password Try "help" to get a list of possible commands. smb: > ls   .                                   D        0  Wed Jun  9 14:20:16 2021   ..                                  D        0  Wed Jun  9 13:40:52 2021   demofolder-pub                      D        0  Wed Jun  9 14:20:06 2021   demofile-pub                        N        0  Wed Jun  9 14:20:16 2021  		13350984 blocks of size 1024. 7957104 blocks available smb: >

在本地测试对私有共享的访问;

smbclient 'localhostprivate' -U demouser
Enter WORKGROUPdemouser's password:  Try "help" to get a list of possible commands. smb: > ls   .                                   D        0  Wed Jun  9 14:20:16 2021   ..                                  D        0  Wed Jun  9 13:40:52 2021   demofile-priv                       N        0  Wed Jun  9 14:20:16 2021   demofolder-priv                     D        0  Wed Jun  9 14:20:06 2021  		13350984 blocks of size 1024. 7957088 blocks available smb: >

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

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

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

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

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

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

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