我正在工作中配置文件服务器。这是一台 Ubuntu 服务器,我已在其中安装并共享硬盘。即通过“本地网络共享” - 后台运行 samba。
这很好用。用户可以从 Windows 浏览到该机器。无需提供凭证(在启用凭证之前,人们对此颇有抱怨)。
但现在我需要能够将文件上传到服务器。即我需要写入权限。但我不希望所有用户都有写入权限。
是否可以设置共享,以便客人可以浏览和阅读(无需凭据)但其他用户可以登录并写入磁盘?
我偶然看到了这篇文章
这似乎表明确实如此。但是在我的 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/公共
在公共部分,我右键单击并选择本地网络共享。我设置了以下选项
- 共享该文件夹
- 访客访问(适用于没有用户帐户的人)
我向上移动一个目录到
/mnt/primary/primary
在主网络上,我右键单击并选择本地网络共享。我设置了以下选项
- 共享该文件夹
- 允许其他人创建和删除此文件夹中的文件
我还必须设置 Samba 用户(否则,访问主共享的用户将无法使用凭据)。我使用
sudo smbpasswd -a USERNAME
其中 USERNAME 是具有写权限的用户的名称。此命令还要求我为 USERNAME 分配一个密码。
现在,当我从 Windows 浏览共享时,我会看到 2 个文件夹。
- 基本的
- 民众
浏览公共区域的用户具有只读访问权限,不需要任何凭据。
浏览主目录的用户会收到用户名/密码提示,其中用户名/密码有效。登录的用户具有写权限。
警告:这仅在 /mnt/primary/primary 中设置了正确的文件权限时才有效。为简单起见,我选择向所有用户授予完全权限。即
chmod 777 -R /mnt/primary/primary
但如果您担心 ubuntu 机器的安全性,这显然不是一个好主意。