用户访问私有目录

用户访问私有目录

User1应该有写访问to 下载文件“人”目录,/bucket但不允许对该目录执行任何其他操作。

User2需要读取权限归档“人”目录、/bucket和导入文件“人”进入User2服务器。

如何设置/bucket上述用户的根目录权限、用户权限?

答案1

您能澄清一下“根目录”的含义吗?另外,您没有指定 Linux 发行版,因此我的命令将基于 Ubuntu。

如果没有 ACL,您的选择就会受到限制。我假设您不希望这些用户都拥有 /bucket 目录。创建一个组(在我的示例中我们将其称为“读者”)并将 User2 添加到“读者”组。

addgroup readers
adduser User2 readers

将 /bucket 目录的组所有权授予“读者”。

chgrp readers /bucket

现在您可以授予读者组对 /bucket 目录的读取权限,并将“other”设置为仅具有写入权限(无读取)。我们还设置了粘滞位,以防止具有写入权限的人删除其他用户的文件。

chmod 1753 /bucket

完成后,权限应如下所示

drwxr-x-wt 1 root   readers     0 Feb 26 17:08 bucket

这赋予了 root 完全控制权,读者可以读取但不能写入,其他人可以写入目录但不能读取。

如果您需要更精细的控制(即每个用户的权限),您需要考虑使用 ACL。要使用 ACL,我们将稍微更改上面的过程。

首先创建一个包含这两个用户的组。在我的示例中,我们将该组称为“bucket-users”。

addgroup bucket-users
adduser User1 bucket-users
adduser User2 bucket-users

接下来我们将给组bucket-users完全控制/bucket 目录的。我们将再次需要粘性位来防止 User1 删除他没有放置在该目录中的文件。

chmod 1770 /bucket

完成后,权限应如下所示。

drwxrwx--T  1 root    bucket-users 0 Feb 26 17:08 bucket

接下来我们将使用setfacl命令来进一步限制这些用户的权限。

setfacl -m "u:User1:-wx" /bucket
setfacl -m "u:User2:r-x" /bucket

然后,您可以使用 getfacl 命令验证这些权限。

$ getfacl bucket
# file: bucket
# owner: root
# group: bucket-users
# flags: --t
user::rwx
user:User1:-wx
user:User2:r-x
group::r-x
mask::rwx
other::---

相关内容