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

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

BSD/MacOS 问题。

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

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

除了“设置权限与设置标志”这一显而易见的说法之外,这两个命令在技术上和行为上有什么区别?什么时候一个命令比另一个命令更受欢迎?

答案1

我想到三个不同之处:

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

相关内容