我知道 1777 是许多 Linux 发行版中 /tmp 的默认模式。
我在网上找不到太多信息,但我想知道是否真的有必要让 /tmp 组和/或全世界可读。
有人能提出一个理由来说明为什么使用 1733 模式 (drwx-wx-wt) 可能是不可接受的吗?
答案1
对于应用程序创建的临时文件,这不会造成太大影响:它们几乎总是使用带有 0700 的受保护子目录,或者至少是 mktemp 生成的文件名。但对于用户创建的临时文件,这是一个很大的不便之处——你不再知道你在其中放了什么,即使你只想删除它。
如果您确实想隔离 /tmp 中不同用户的文件,可以通过命名空间来实现:pam_namespace.so 可以为每个用户创建 /tmp 的完全独立视图,而 PrivateTmp= 可以为 systemd 管理的服务执行相同操作。(类似于 bindfs 的特殊文件系统也可以提供此功能,尤其是对于非 Linux 操作系统。)