为什么 emacs 阻止超级用户在没有权限的情况下编辑文件?

为什么 emacs 阻止超级用户在没有权限的情况下编辑文件?

如果我有一个要编辑的文件,作为 root,我应该能够修改它,而不管权限如何。但似乎并非所有文本编辑器都是如此,尤其是 emacs。

如果有一个文本文件具有以下任何权限,具有-rw-r--r---r--rw-r--、 或-r--r--rw-root 权限,我可以编辑该文件,没有问题。但是,如果根本没有写权限 ( -r--r--r--),emacs则将不允许 root 对缓冲区进行更改。 Vim 的行为方式也有点古怪。对于前三种情况,它将允许 root 使用该:w命令保存更改,但在最后一种情况下,root 必须使用 override:w!命令来保存。

两者nanogedit表现正常,始终为超级用户提供写访问权限。

emacs有谁知道和的这种令人讨厌的行为的根源是什么vim?我倾向于认为这更多的是某种东西的副作用,而不是基于 vim 行为的有意设计,但我想不出是什么导致了这种情况。

答案1

这更多的是一个案例vimemacs揭露了幕后发生的事情。如果文件没有可用的写入权限,则不会就地编辑该文件。相反,该文件被完全替换(因为这取决于目录权限,而不是文件权限)。

emacs要保存没有写入权限的文件,您可以使用M-x toggle-read-onlyC-x C-q。然后您将能够保存您的修改。

相关内容