![chmod 777 能否普遍取代 chown 的需要?](https://linux22.com/image/1374292/chmod%20777%20%E8%83%BD%E5%90%A6%E6%99%AE%E9%81%8D%E5%8F%96%E4%BB%A3%20chown%20%E7%9A%84%E9%9C%80%E8%A6%81%EF%BC%9F.png)
我很清楚
chmod 777
命令将使任何文件在理论上可供任何用户访问/读取/写入/执行。
但是是否存在这样的情况,即使有一个全世界可写/可读的文件,我们仍然需要实现 CHOWN 才能让系统进程使用该文件?
或者我们可以假设,只要权限完全开放,chown 命令就不会影响文件的访问模式行为。
我问这个问题与一些多线程/集群进程有关,这些进程在以错误的用户身份运行时似乎会失败,因为 ENOENT 错误似乎发生在具有完全开放(777)权限的文件上。
答案1
对于 setuid/setgid 的脚本,意味着它以拥有该文件的用户或组的身份执行,这可能是一个问题。
理论上,程序在使用文件之前可能会检查其所有权,安全工具(如 ssh)拒绝以全局权限执行,但据我所知不会检查所有权。对于设置自己所有权的程序,这也可能是一个问题,例如邮件服务器通常也会在转到邮件用户 ID 之前检查权限。
从安全角度来看,这被认为是非常糟糕的做法。