如何在 rc.sysinit 执行时删除 /etc 中的文件?

如何在 rc.sysinit 执行时删除 /etc 中的文件?

我想在 rc.sysinit 执行时删除一个文件,我写了类似下面的内容:

是 | rm /etc/anImportantFileWhichBelongsToSystem

我猜测执行 rc.sysinit 的父用户是“root”,这意味着它可以做任何他想做的事情,但就我而言,我无法从硬盘中删除一个简单的文件,并且没有显示错误,文件的属性是:700

我应该怎么办?

答案1

  1. 正如@Daniel Beck 所说,您确实应该使用 rm -f 来实现这一点。您不需要奇怪(但有效)的 yes-pipe 黑客。

  2. 此时文件系统可能不可写入。您是否测试过是否可以在脚本中的此时创建文件?touch /etc/testfile或者,只是为了确保它已安装且可写入。

  3. 文件上可能有扩展属性。扩展属性是覆盖 root 权限的属性。说什么lsattr file

答案2

尝试将其移动到/dev/nullunlinkecho :> /etc/anImportantFileWhichBelongsToSystem

答案3

可能的问题是文件系统可能未挂载和/或未挂载为 R/W。您可能必须在 rc.sysinit 完成后再执行此操作。

相关内容