即使是 root 用户也无法编辑只读文件

即使是 root 用户也无法编辑只读文件

我正在尝试在 OS X El Capitan 上编辑/System/Library/LaunchDaemons/com.apple.taskgated.plist。文件权限为

-rw-r--r-- 1 root wheel 601 17 Nov 2015 com.apple.taskgated.plist

我的第一次尝试是编辑后sudo vi (filename)使用w!,但 vi 仍然报告只读状态。

我第二次尝试是使用 nano 和 sudo - 同样的问题。

我第三次尝试sudo su编辑文件——同样的问题。

我的第四次尝试是vi (filename),将其写入临时文件,然后sudo cp (temp file) (filename)- 操作不允许。

我想知道 a) 如何修复该问题以及 b) 我误解了什么 - 我以为我通过sudo或拥有完全的 root 访问权限sudo su,并且 root 对此文件拥有写权限...

答案1

除非你已经禁用系统完整性保护/System即使是 root 也无法写入目录树。

问题ls -lO /System(大写字母‘oh’,不是零);如果您看到restricted,则 SIP 正在保护该目录树。

解决方案(来自链接的答案):

  1. 首次启动进入恢复模式(启动时按 Command-R)
  2. 在终端中输入csrutil disable
  3. 重新启动到正常模式。您应该看到 SIP 不再阻止写入访问。

如果您稍后想要恢复 SIP,只需csrutil enable在恢复模式下使用。

答案2

我猜你是在 Mac 上使用 vim 编辑系统文件。请尝试使用 nano。对我来说,它有效。

答案3

确保该文件没有被可能阻止它的其他进程打开。

lsof +D /System/Library/LaunchDaemons/

答案4

检查指向您要编辑的文件的所有文件夹是否存在!这就是我遇到的情况 :)

vim ~/some_folder/some_non_existing_folder/file.txt

相关内容