SMB 共享在来宾和用户特定之间混合 - 如何配置和排除故障

SMB 共享在来宾和用户特定之间混合 - 如何配置和排除故障

尽管我对 Windows 非常了解,但我对 Linux 还算是个新用户。

我已经将 Linux 14.04 机器设置为文件服务器。最初,我设置了三个文件夹并使用了文件应用程序中的 GUI 界面。在本地网络共享中,我将共享设置为允许其他人在文件夹中创建和删除文件以及允许访客访问。这很有效。

然后昨晚我创建了一个文件夹并共享了它但没有启用访客访问。我还创建了一个与 Windows 登录匹配的 Linux 系统用户帐户,创建了一个组并将其设置为文件夹的所有者,并将文件夹的所有权设置为该组。当我访问新的用户特定文件夹时,我得到了一个用户名和密码提示,正如我第一次预料的那样,我告诉它记住登录信息,这样我就不再看到这些信息了。我可以访问该文件夹,读取和写入文件。问题是现在原来的三个访客访问文件夹对于使用新登录的用户不再正常工作。它具有浏览和读取访问权限以及删除文件权限,但我无法修改现有文件或运行 exe。这些访客访问文件夹仍然可以在没有配置 Linux 系统用户登录的其他计算机上正常工作。

看来我需要明确配置原始的三个文件夹共享,既可以作为访客共享,也可以作为用户共享。有人可以指导我如何执行此操作并排除故障吗?如果可能的话,我更愿意使用 GUI。

在等待帮助的同时,我也在尝试更好地理解它们是如何协同工作的。基于 Nautilus GUI 的网络共享配置似乎只适用于访客访问,但我发现它没有将共享信息放入主 /etc/samba/smb.conf 文件中。我在盒子上搜索了其他 smb.conf 文件,但没有找到。我怀疑修改主 smb.conf 文件并在两个文件中引用相同的共享但使用不同的设置是一个非常糟糕的主意。有人可以指出这些文件并告诉我如何将信息迁移到主 smb.conf 文件吗?

答案1

好吧,当我在等待别人回答的时候,我一直在挖掘并找到了答案。我在这里发布以供后人参考。

看来 Nautilus 基于 GUI 的共享仅适用于未经身份验证的文件夹共享。一旦有人想进入用户特定的共享文件夹,无论是否与其他来宾访问共享文件夹混合,都必须使用主 /etc/samba/smb.conf 文件。

为了避免重复,我建议首先关闭 Nautilus 中的文件夹共享。然后将共享添加到主 smb.conf 文件中。要使用写权限打开文件,请将以下命令粘贴到终端中:

sudo gedit /etc/samba/smb.conf

它会要求您输入主 Linux 登录密码,然后打开该文件。

在文件底部添加一个部分用于分享。为了保持整洁,我先添加一个标题: #========= Shares ========

然后我建立了两个部分,其中一个标记为:

# public shared folders

其中一个标签为:

# User-specific folders

在公共共享文件夹标题下,我为各种公共文件夹创建了共享。以下是示例:

[public]

    comment = public folders for documents and downloaded files
    path=/home/murdfs/Documents/public
    browsable = yes
    guest only = yes
    guest ok = yes
    read only = no
    create mask = 0755

如果您在一台 Linux 计算机上混合了来宾访问文件夹和用户特定文件夹,则其中一个非常重要的条目是仅来宾 = 是选项。这样一来,即使计算机在 Linux 机器上有帐户,它也会使用来宾帐户访问公共文件夹。如果您不这样做,这些计算机将在公共共享中创建由其登录名拥有的文件和文件夹,因此其他人可以看到并打开它们,但不能修改和保存它们。公共文件夹的理念是每个人都对文件和文件夹拥有平等、完全的访问权限,因此这个结果是不正确的。

用户特定的共享配置条目非常相似,但当然缺少仅限访客的选项。以下是用于比较的示例:

[MurdRcvr2]

    comment = Murdoch's Gem Shop Receiver2 computer's documents backup
    path=/home/murdfs/Documents/MurdRcvr2
    browsable = yes
    guest ok = no
    read only = no
    create mask = 0755

添加共享后,保存文件。这将释放终端,以便您可以执行那里所需的其他步骤。

设置来宾共享文件夹的所有权。为了保持连续性,我将使用我给出的配置示例:

sudo chown nobody:nogroup /home/murdfs/Documents/public

设置用户特定文件夹共享的所有权。这假定您已经创建了用户帐户,这会导致自动创建一个同名的组:

sudo chown :murdrcvr2 /home/murdfs/Documents/MurdRcvr2

创建 Samba 用户名并为该用户帐户设置密码:

sudo smbpasswd -a murdrcvr2

重新启动 SMB 服务(请注意,这会断开与此 Linux 机器上现有共享连接的所有其他计算机的连接,因此需要先关闭所有共享文件):

sudo service smbd restart

现在您应该能够从网络上的任何计算机访问访客访问文件夹,而无需登录,并且只能在登录后访问特定于用户的文件夹。

相关内容