我在一台将用作 NAS 的家用电脑上安装了 Debian。服务器将与使用 Ubuntu 或 Windows 7 的电脑共享一个文件夹(我使用双启动)。我应该将chown
所有共享文件夹和子文件夹分配给我的用户名还是其他用户(例如,nobody)?
在以前的 NAS 上,我遇到了一些共享文件夹问题,我执行了chmod 777 -R
所有文件,但在 Windows 7 上仍然遇到问题。我只能读取文件夹和文件,但不能写入文件。
更新:将我的用户名设置为文件所有者可能不是最好的解决方案,因为这些文件必须能够被 DLNA 服务器访问。
答案1
这实际上取决于您的设置。在我的配置中,所有共享文件都归我的用户所有。系统上有 6 个用户,并通过 Samba 和 DLNA 分发文件。
在 Samba 中,您可以通过/etc/samba/smb.conf
配置来配置它,以允许任何人和所有人进行读取或写入访问,或者仅为当前所有者进行配置。如果您使用allow users = @group
或write users = @group
,它会添加这些权限,假设 Samba 以 root 身份运行。要使用文件系统权限,请使用inherit permissions = yes
共享上的选项。
对于 DLNA,我使用了 miniDLNA,它可以很好地读取所有文件。我配置了我想要的文件夹以及其中的内容类型。然后它为我分配了文件,不用担心权限(我假设它以 root 身份运行)。
如果您不关心谁有权访问一般共享文件,请为您积极希望访问您文件的每个人创建一个组,然后将文件分配给该组(即sudo chown -R :groupname /mnt/share/files
)。然后,当您添加用户时(如果您这样做),您只需将他们添加到组中/etc/group
,他们就可以访问这些文件!确保您还设置了chmod -R 770 /mnt/share/files
匿名人员看不到这些文件。
答案2
对于共享文件,所有者/权限不如组/权限重要。虽然使用标准 Unix 样式文件权限架构完全可以实现您的目标,但这可能很困难。 ACL(访问控制列表)是 Unix 文件权限的一个更灵活的替代方案,尤其是在多个用户之间共享文件时。
以下是在 Debian 系统上安装 ACL 的简要方法: