![如何防止用户更改其主目录权限?](https://linux22.com/image/73962/%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2%E7%94%A8%E6%88%B7%E6%9B%B4%E6%94%B9%E5%85%B6%E4%B8%BB%E7%9B%AE%E5%BD%95%E6%9D%83%E9%99%90%EF%BC%9F.png)
如果用户smith
的主目录具有以下权限:
$ ls -l /home/staff
drwxr-x--- 51 smith staff 4096 Sep 18 09:08 smith/
是否有可能以某种方式阻止他将他的主目录的权限更改为例如 755?
答案1
一种方法是使用每用户组(即每个用户一个组),然后将主目录权限设置为 root:smith,模式 0770。
另一种(更hacky)的方法是编写脚本:创建一个脚本来检查驻留在/ home(例如不是/ root)下的所有主目录(通过setpwent()/ getpwent()获取它们),并使其在存在时发出警告差异或当场更改权限。
过去我自己在多用户环境中完成了后者,并且工作了很多年。
答案2
仅当相关操作系统和文件系统支持 NTFS 和 ZFS 使用且由 NFSv4 标准化的 ACL 标准时,您的愿望才可能实现。
因此,您是否能够做您喜欢的事情取决于操作系统和文件系统。
传统的 UNIX 规则是目录的用户所有权也允许访问模式更改。使用 ACL,您可以拒绝用户更改其自己目录的 ACL。
答案3
这将每 15 秒重新应用一次权限:
watch -n15 "chmod 0700 *"
或者创建一个 cronjob 每隔一分钟左右重新应用权限。