配置 Ubuntu 以共享文件夹,供访客只读,供经过身份验证的用户写入

配置 Ubuntu 以共享文件夹,供访客只读,供经过身份验证的用户写入

我正在工作中配置文件服务器。这是一台 Ubuntu 服务器,我已在其中安装并共享硬盘。即通过“本地网络共享” - 后台运行 samba。

这很好用。用户可以从 Windows 浏览到该机器。无需提供凭证(在启用凭证之前,人们对此颇有抱怨)。

但现在我需要能够将文件上传到服务器。即我需要写入权限。但我不希望所有用户都有写入权限。

是否可以设置共享,以便客人可以浏览和阅读(无需凭据)但其他用户可以登录并写入磁盘?

我偶然看到了这篇文章

https://serverfault.com/questions/354791/samba-share-with-guest-access-and-authenticated-users-for-write-access

这似乎表明确实如此。但是在我的 smb.confg 文件中,我没有看到我正在共享的文件夹。

我也不太理解这个建议。有些概念我不太理解,因为我还是个 UI 新手。

澄清:

从 Windows 用户的角度来看,我希望

a)授予只读访客访问权限,以便任何人都无需凭证即可下载文件 b)仍然支持可以上传文件的授权(针对 1/2 普通用户)。

我需要这个的原因是因为我想将 pdb 符号存储在服务器上并使用“symstore add”从 Windows 机器上传它们。

答案1

如果您所说的是所需权限为:用户???、组(受信任)rwx、补充(命名)r、公共无。模拟此额外权限的唯一方法是使文件组为可读、公共无用户等。然后创建一个频繁的 cron 作业,它将智能地复制用户 ~/.samba_upload,这将以 root 身份绕过权限。

答案2

让我们退一步来看。每个文件都有一个所有者(用户)并且属于一个组。文件权限分为 3 类:用户、组和其他。用户可以添加到组中。文件权限可以是读取、写入或执行。命令 apropos 列出所有相关手册,命令 man 后跟命令显示该命令手册页。尝试命令 chown 和 chmod 很有趣,因为您的 samba 驱动器安装到的目录的所有权和权限也很有趣。我认为您的解决方案是将文件放入 rw 组,将其他文件放入 r,将受信任的用户放入文件组。

答案3

经过深思熟虑,找到了一个简单的解决方案。我共享的文件夹是

/mnt/primary/primary/公共

在公共部分,我右键单击并选择本地网络共享。我设置了以下选项

  1. 共享该文件夹
  2. 访客访问(适用于没有用户帐户的人)

我向上移动一个目录到

/mnt/primary/primary

在主网络上,我右键单击并选择本地网络共享。我设置了以下选项

  1. 共享该文件夹
  2. 允许其他人创建和删除此文件夹中的文件

我还必须设置 Samba 用户(否则,访问主共享的用户将无法使用凭据)。我使用

sudo smbpasswd -a USERNAME

其中 USERNAME 是具有写权限的用户的名称。此命令还要求我为 USERNAME 分配一个密码。

现在,当我从 Windows 浏览共享时,我会看到 2 个文件夹。

  • 基本的
  • 民众

浏览公共区域的用户具有只读访问权限,不需要任何凭据。

浏览主目录的用户会收到用户名/密码提示,其中用户名/密码有效。登录的用户具有写权限。

警告:这仅在 /mnt/primary/primary 中设置了正确的文件权限时才有效。为简单起见,我选择向所有用户授予完全权限。即

chmod 777 -R /mnt/primary/primary

但如果您担心 ubuntu 机器的安全性,这显然不是一个好主意。

相关内容