我尝试运行“sudo EDITOR=./sudo_editor visudo -f /etc/sudoers.d/relax_requirements”命令,出现错误:visudo: 指定的编辑器(./sudo_editor)不存在
有人知道在这种情况下我该怎么办吗?
答案1
你可以用任何编辑器编辑你的 sudo 文件,visudo
只要“以安全的方式”进行就可以了,以防止出现一些错误。但你可以用任何编辑器自己动手,只要准备好备份副本和实时 iso 就可以了,以防万一。
man visudo
说:
There is a hard-coded list of one or more editors that visudo will use
set at compile-time that may be overridden via the editor sudoers Default
variable. This list defaults to /usr/local/bin/vi. Normally, visudo
does not honor the VISUAL or EDITOR environment variables unless they
contain an editor in the aforementioned editors list. However, if visudo
is configured with the --with-env-editor option or the env_editor Default
variable is set in sudoers, visudo will use any the editor defines by
VISUAL or EDITOR. Note that this can be a security hole since it allows
the user to execute any program they wish simply by setting VISUAL or
EDITOR.
因此,也许您visudo
无法覆盖其硬编码的编辑器列表。您可以尝试使用完整路径来引用编辑器,而不是使用和,./
这可能会起作用,或者尝试使用“默认”编辑器,如vi
或nano
(使用查找其路径which
)。或者只需运行这个就行了(虽然我不推荐vi
;-)
sudo EDITOR=vi visudo
或者
sudo EDITOR=nano visudo
或者甚至使用一个好的图形编辑器,就像gedit
已经安装的一样:
sudo EDITOR=gedit visudo
在常规 Ubuntu 上(或 Linux Mint 和其他系统),只需运行此命令就可以了:
sudo visudo
或者针对您的特定文件的情况:
sudo visudo -f /etc/sudoers.d/relax_requirements