“chmod -w 文件”和“chflags uchg 文件”之间的技术区别是什么

sel*_*bie 7 mac freebsd bsd macos

BSD/MacOS 问题。

chmod -w file将从文件中删除所有写权限

chflags uchg file将在文件上设置用户不可变位(又名“锁定”位)

除了“设置权限 vs 设置标志”的明显声明之外,这两个命令的技术差异和行为差异是什么?什么时候一个比另一个更受欢迎?

Gor*_*son 6

我的脑海中浮现出三个不同之处:

  • 该UCHG标志锁定文件的内容它的目录项,而文件的权限只适用于文件的内容。这意味着删除了所有写访问权限的文件仍然可以被任何对该文件所在目录具有写访问权限的用户自由移动、重命名甚至删除。
  • root 用户会忽略文件权限,但会受到 uchg 锁定的影响。但是 root 用户可以解锁文件,所以这并没有那么大的区别。
  • 至少在 OS X 上,删除 POSIX 权限中的所有写访问可以被文件上的访问控制列表覆盖。chmod -w不会删除授予写访问权限的 ACL 条目,因此某些用户和/或组可能仍具有写权限。