GNU特殊对待/根目录

来自泡泡学习笔记
BrainBs讨论 | 贡献2023年7月14日 (五) 01:35的版本 (创建页面,内容为“某些命令可以对整个层次结构进行破坏性操作。例如,如果具有适当权限的用户错误地运行“rm -rf / tmp/junk”,可能会移除整个系统上的所有文件。由于这样的命令几乎没有合法的用途,GNU rm通常拒绝对解析为 / 的任何目录进行操作。如果您确实想尝试删除系统上的所有文件,可以使用--no-preserve-root选项,但对于大多数情况来说,默认行为(由--preserve…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

某些命令可以对整个层次结构进行破坏性操作。例如,如果具有适当权限的用户错误地运行“rm -rf / tmp/junk”,可能会移除整个系统上的所有文件。由于这样的命令几乎没有合法的用途,GNU rm通常拒绝对解析为 / 的任何目录进行操作。如果您确实想尝试删除系统上的所有文件,可以使用--no-preserve-root选项,但对于大多数情况来说,默认行为(由--preserve-root选项指定)更安全。


chgrp、chmod和chown命令也可以对整个层次结构进行破坏性操作,因此它们也支持这些选项。尽管它们与rm不同,实际上不会删除文件,但是这些命令在对 / 递归操作时可能更危险,因为它们通常执行速度更快,因此在警觉的用户能够中断它们之前会损坏更多的文件。传统和POSIX要求这些命令对 / 递归操作,因此它们默认为--no-preserve-root,但使用--preserve-root选项可以使它们对大多数情况更安全。为了方便起见,您可以在别名或shell函数中指定--preserve-root。


请注意,--preserve-root选项还确保在解引用指向 / 的符号链接时,chgrp和chown不会修改 /。