有没有办法禁用目录中特定用户的所有写访问权限?

有没有办法禁用目录中特定用户的所有写访问权限?

我最近了解了 ACL 以及setfacl如何设置每个用户的访问权限。但有一件事我不知道如何实现,那就是限制特定目录中特定用户的所有 write(*) 访问权限以及里面的一切

换句话说,考虑一个用户some_user和一个目录some_dir(假设chmod 777 some_dir已被使用)。有没有办法限制 的some_user写访问权限 -没有更改任何其他访问权限 -some_dir及其所有内容?

我尝试/想到的:

  • setfacl -R -m u:some_user:rx some_dir/不会成功,因为它将授予对some_user用户之前可能无法读取的文件的读取访问权限,以及对用户之前可能无法执行的文件的执行访问权限。
  • 将掩码设置r-xsome_dir递归(再次使用setfacl)也不会这样做,因为没有办法使掩码特定于一个用户(据我所知)

浏览完 ACL 文档后,我没有遇到任何指向这个方向的内容,因此需要明确的是,我不一定要寻找一种使用 ACL 来实现此目的的方法。

(*) 或读取或执行访问 - 我想哪一个并不重要,但我会坚持使用写入访问以保持简单

答案1

在为用户 p3 应用 acl 之前现在每个人都对目录 k2 具有完全访问权限

 mkdir k2

 chmod 777 k2
getfacl k2
# file: k2
# owner: praveen
# group: praveen
user::rwx
group::rwx
other::rwx

现在让我们限制用户 p3 对目录 k2 的写访问

 setfacl -m u:p3:rx k2
$ getfacl k2
# file: k2
# owner: praveen
# group: praveen
user::rwx
user:p3:r-x    =====> user p3  have only read and execute acess not write
group::rwx
mask::rwx
other::rwx

相关内容