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::---