如果我有一个要编辑的文件,作为 root,我应该能够修改它,而不管权限如何。但似乎并非所有文本编辑器都是如此,尤其是 emacs。
如果有一个文本文件具有以下任何权限,具有-rw-r--r--
、-r--rw-r--
、 或-r--r--rw-
root 权限,我可以编辑该文件,没有问题。但是,如果根本没有写权限 ( -r--r--r--
),emacs
则将不允许 root 对缓冲区进行更改。 Vim 的行为方式也有点古怪。对于前三种情况,它将允许 root 使用该:w
命令保存更改,但在最后一种情况下,root 必须使用 override:w!
命令来保存。
两者nano
都gedit
表现正常,始终为超级用户提供写访问权限。
emacs
有谁知道和的这种令人讨厌的行为的根源是什么vim
?我倾向于认为这更多的是某种东西的副作用,而不是基于 vim 行为的有意设计,但我想不出是什么导致了这种情况。
答案1
这更多的是一个案例vim
并emacs
揭露了幕后发生的事情。如果文件没有可用的写入权限,则不会就地编辑该文件。相反,该文件被完全替换(因为这取决于目录权限,而不是文件权限)。
emacs
要保存没有写入权限的文件,您可以使用M-x toggle-read-only
或C-x C-q
。然后您将能够保存您的修改。