授予用户对主目录中文件夹的权限

授予用户对主目录中文件夹的权限

我刚刚安装了 resiliosync 并且运行良好。它默认创建一个用户“rslsync”。我想要在我的主目录中拥有一个默认文件夹,其中包含我的所有同步项目,当然当前 rslsync 无法访问该文件夹。

我在我的主目录中创建了一个名为“sync”的目录。在同步目录中,我还创建了 2 个文件夹“dropbox”和“resilio”。我希望文件夹“resilio”成为我的文件的默认位置,这些文件作为“rslsync”使用运行。

授予用户“rslsync”对我的主目录中“resilio”文件夹的读取、写入和执行访问权限的最佳方法是什么?只需将用户“rslsync”添加到我的用户组即可为其提供所需的所有访问权限吗?

答案1

如果该文件以及需要遍历的任何目录满足以下任一条件,则程序可以访问该文件:

  • 程序运行时具有访问权限的用户;
  • 程序运行时具有访问权限的任何组;
  • 每个人都可以访问。

(实际上并非在所有情况下都是如此,但在这里它是一个足够好的近似值。)

请注意,哪些用户属于哪些组的成员不会出现。此信息仅在用户登录时使用:它会导致该登录会话中的程序作为这些组运行。因此将用户添加到组并不能解决您的问题。

您需要授予用户rslsync对该resilio目录以及通往该目录的整个目录链的访问权限。要访问/home/liam/sync/resilio,程序需要具有、、、的目录遍历权限(x属性,对于普通文件来说意味着“执行”) ,以及的读取权限。//home/home/liam/home/liam/sync/home/liam/sync/resilio/home/liam/sync/resilio

你可以用访问控制列表

setfacl -m u:rslsync:x /home/liam /home/liam/sync
setfacl -R -m u:rslsync:rx /home/liam/sync/resilio
setfacl -R -d -m u:rslsync:rx /home/liam/sync/resilio

第一行确保 rslsync 可以遍历前导目录。第二行允许 rslsync 访问以 为根的整个目录树/home/liam/sync/resilio。带有该标志的第三行为-d新创建的文件设置默认 ACL — 如果没有此标志,rslsync 将无法读取任何新创建的文件。

某些应用程序可能会创建具有比默认 ACL 更严格的 ACL 的文件。当从其他位置复制文件时,尤其会发生这种情况。在这种情况下,rslsync 将无法读取这些文件。有一种不同的方法可以确保 rslsync 始终可以读取文件,即/home/liam/sync/resilio使用不同的权限创建树的替代视图。你可以这样做绑定文件系统。请注意,您必须以 root 身份进行安装才能允许其他用户访问 bindfs 文件系统。您可以在中使用以下行/etc/fstab

bindfs#/home/liam/sync/resilio /var/lib/rslsync/resilio fuse ro,force-user=rslsync,perms=u+rD:go=

答案2

您可以使用命令检查每个文件和文件夹的权限、所有者和组ls -al

例如,您可能会收到这样的回复......

-rw-r--r-- 1 user user   148 Aug 26 10:58 a-file
drwxrwxrwx 0 user group  512 Aug 26 10:59 a-folder

请注意每行开头的字母。这些字母代表权限。基本上,每个文件和文件夹都具有所有者、组和其他人的权限。

  • 第一个字母-d表示它是文件还是文件夹
  • 以下三个字母为rwx您提供有关所有者用户的权限的信息。r用于读取、w写入和x执行或移动到该文件夹​​。
  • 接下来的三个字母代表该组的权限。请注意,文件可能属于与所有者所在组不同的组。
  • 最后,其他三个字母代表其他人的权限。

如果您将“rslsync”加入到用户的同一组,您可以授予它更多您想要的权限。例如,如果用户属于管理员组,您可以授予其运行管理任务或访问私人文件的权限。

要授予用户“rslsync”rwx对“resilio”文件夹的完全访问权限 ( ),您可以将该文件分配给 rslsync 组,并为其组授予对该文件夹的完全访问权限。如果 rslsync 组具有相同的名称:

# change the group of the resilio folder
$ chgrp -R rslsync resilio

# set full access to the group
$ chmod -R g+rwx resilio

通过这种方式,用户仍然是文件的所有者,“rslsync”具有对文件夹和文件的完全访问权限,并且组之间保持相互分离。

相关内容