Linux 权限 - 继承/免费所有共享文件夹

Linux 权限 - 继承/免费所有共享文件夹

我曾经运行 Windows Server,并且在 NAS 上共享文件是一件轻而易举的事。我已经制定了大部分权限以使其按照我的需要工作,并且主要使用 Samba 来提供文件。

我遇到的唯一任务是创建一个共享文件文件夹以映射到每个客户端。看来Linux总是在具有755权限的用户下创建文件和文件夹,因此当在此文件夹中创建内容时,其他用户无法修改或删除它们。

在 Windows/NTFS 中,我能够将“共享文件”文件夹设置为“R+W”,并使其下的所有内容都继承此设置,这意味着该文件夹按预期对所有人免费。我还没有找到如何让 Linux 做到这一点。

Ubuntu 服务器 16.04.3 LTS

答案1

将共享根目录(即 SAMBApath指令)的权限设置为077x(其中x可以有效地为05或 之一7)并让 SAMBA 处理权限。如果您有不同的方式访问与 SAMBA 共享对应的文件系统中的文件,则只需混合 UNIX/Linux 文件系统权限和 SAMBA 权限。

如果您希望所有用户都是等效的,请使用该force user指令。这将确保访问共享的所有用户都被视为 UNIX/Linux 文件系统中的同一用户。 (这与身份验证无关 - 如果您设置了个人帐户,用户仍然可以使用个人帐户进行身份验证。)

下面是一个执行此操作的共享示例。 “ remote”用户和组是将拥有这些文件的本地 UNIX/Linux 帐户。 “ family”组是我和我的家人用来验证共享的一组帐户。

[Family]
        comment = Shared
        valid users = @family
        path = /home/remote/shared
        vfs objects = recycle catia
        browseable = Yes
        read only = No
        force user = remote
        force group = remote
        force create mask = 0664
        force directory mask = 0775

答案2

您可以使用create maskdirectory mask配置选项来配置更宽松的 umask 以允许组成员(或每个人)修改文件。

例如:

create mask = 0775
directory mask = 0775 

还有各自的force crate modeforce directory mode选项。使用时,相应的权限始终会添加到创建的文件和目录中。

取决于您的用户配置方式:

  • 如果您的所有用户共享一个共同的主要组,则使用上述选项就足够了。

  • 如果主组不共享,但用户是公共组的成员,请将目录组设置为公共组并应用设置gid位到它。什么时候设置gid位设置为一个目录,创建的新文件将继承该目录的组,并且创建的新目录将具有设置gid位设置为好。

  • 使用POSIX 访问控制列表。要为文件系统启用 ACL,您可能需要使用aclmount 选项。当为目录设置默认 ACL 时,创建的新文件和目录将继承默认 ACL。请参阅答案Linux下如何继承组权限了解详情。

相关内容