web-dev-qa-db-ja.com

visudo:指定されたエディター(./Sudo_editor)は存在しません

「Sudo EDITOR =。/ Sudo_editor visudo -f /etc/sudoers.d/relax_requirements」コマンドを実行しようとすると、エラーが出ました:visudo:specified editor(./Sudo_editor)does not exist

この状況で私がすべきことは誰でも知っていますか?

3
Eve

任意のエディタでSudoファイルを編集するだけで、visudoはエラーを防ぐために「安全な方法で」それを行います。ただし、万が一のためにエラーを修正できるように、バックアップコピーとライブISOを用意しておくだけで、エディターでDIYできます。

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は、ハードコーディングされたエディターのリストをオーバーライドできません。 ./の代わりに完全なパスを使用してエディターを参照してみてください。または、vinanowhichでパスを検索)のような「デフォルト」エディターを試してください。または、これを実行するだけでうまくいきました(ただし、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
2
Xen2050