我怎样才能为visudo指定编辑器?

时间:2014-12-15 09:23:54

标签: vim ubuntu-12.04 env sudoers visudo

我执行了这两个命令:

export VISUAL=/usr/bin/vim
export EDITOR=/usr/bin/vim

我检查了env是否正确更新了它们。但是当我运行sudo visudo时,我得到了一个奇怪的编辑器。

虽然我不知道编辑器,但在控制台底部却说:

-----Mg: sudoers.tmp                  (fundamental)----Top------------------
(Read 29 lines)

这个编辑器没用,因为我无法移动光标。我能做的就是关闭控制台。

是什么让这个奇怪的编辑器运行?我应该执行什么命令来更改编辑器?

2 个答案:

答案 0 :(得分:2)

来自:man visudo(第二段):

  

visudo将使用一个或多个编辑器的硬编码列表   在编译时设置,可以通过编辑器覆盖默认值   变量。此列表默认为/ usr / local / bin / vi。通常,visudo   不尊重VISUAL或EDITOR环境变量,除非它们   包含上述编辑列表中的编辑器。但是,如果是visudo   配置了--with-env-editor选项或env_editor Default   变量是在sudoers中设置的,visudo将使用任何编辑器定义的   视觉或编辑。请注意,这可能是一个安全漏洞,因为它允许   用户只需设置VISUAL或即可执行他们想要的任何程序   编辑器。

因此,要配置其他编辑器,您需要更改/etc/sudoers配置并添加例如Defaults editor /usr/bin/vim行。

奇怪的是,Vim应该是默认编辑器?!根据您的输出,可能来自Vim(有损坏的终端)或其他编辑器(您可以检查进程树)。

答案 1 :(得分:1)

它是一个名为mg的类似emacs的编辑器,您可以/应该阅读其手册页$ man mg,以了解其工作原理。

至于它如何以及为何成为你的默认编辑器...你应该看看你的init文件。