我想要创建一个 Samba 共享(我的 NAS 在 Linux 上运行),其中用户可以执行以下操作:
- 创建新文件和新文件夹
并且或不允许:
- 删除或编辑文件或文件夹
由于 Linux 只有 rwx 权限,而没有区分“写入”和“重写”,我想知道这是否可能。
(虽然操作系统和上下文不同,但我想要类似的东西允许用户创建文件但不允许编辑和删除文件。此外,用户添加的文件夹也应遵循相同的规则:不得更改/删除其中的文件/文件夹)
答案1
基本上,您需要将文件的所有者设置为非 Samba 用户,并将文件的组设置为 Samba 用户不是其成员的组(如果需要,您可以创建一个虚拟组)。
chown -R root:emptygroup * /path/to/dir/
然后将文件的粘滞位设置为 1:
chmod -R 1777 /path/to/dir/
限制删除标志或粘滞位
限制删除标志或粘滞位是一个位,其解释取决于文件类型。 对于目录,它可以阻止非特权用户删除或重命名目录中的文件,除非他们拥有该文件或目录; 这被称为目录的受限删除标志,通常在 /tmp 等可全球写入的目录中找到。
链接的帖子讨论了需要安排一个 cron 作业来设置新创建文件的权限,但在您的 smb.conf 文件中,您可以放入以下几行来解决这种情况:
inherit owner=yes
inherit permissions=yes