![如何在 rc.sysinit 执行时删除 /etc 中的文件?](https://linux22.com/image/1358508/%E5%A6%82%E4%BD%95%E5%9C%A8%20rc.sysinit%20%E6%89%A7%E8%A1%8C%E6%97%B6%E5%88%A0%E9%99%A4%20%2Fetc%20%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我想在 rc.sysinit 执行时删除一个文件,我写了类似下面的内容:
是 | rm /etc/anImportantFileWhichBelongsToSystem
我猜测执行 rc.sysinit 的父用户是“root”,这意味着它可以做任何他想做的事情,但就我而言,我无法从硬盘中删除一个简单的文件,并且没有显示错误,文件的属性是:700
我应该怎么办?
答案1
正如@Daniel Beck 所说,您确实应该使用 rm -f 来实现这一点。您不需要奇怪(但有效)的 yes-pipe 黑客。
此时文件系统可能不可写入。您是否测试过是否可以在脚本中的此时创建文件?
touch /etc/testfile
或者,只是为了确保它已安装且可写入。文件上可能有扩展属性。扩展属性是覆盖 root 权限的属性。说什么
lsattr file
。
答案2
尝试将其移动到/dev/null
或unlink
或echo :> /etc/anImportantFileWhichBelongsToSystem
答案3
可能的问题是文件系统可能未挂载和/或未挂载为 R/W。您可能必须在 rc.sysinit 完成后再执行此操作。