Ubuntu 10.04 Serverを使用しており、ユーザーのEDITORの選択を尊重するようにsudoersを設定しようとしています(制限内)
私のsudoersには:
Defaults        editor=/usr/bin/nano:/usr/bin/vim
Defaults        env_reset
そして、ユーザー.bashrcで:
export EDITOR=/usr/bin/vim
$ EDITORが設定されます:
$ echo $EDITOR
/usr/bin/vim
これによればman sudoers、$ EDITORをvimに設定するには十分なはずです。
editor  A colon (':') separated list of editors allowed to be used with visudo.
        visudo will choose the editor that matches the user's EDITOR environment
        variable if possible, or the first editor in the list that exists and is
        executable. The default is the path to vi on your system.
ただしnano、このユーザーにはまだ使用されています。envの簡単なチェック:
$ sudo -- env | grep EDITOR
何も返しません。
$ sudo -E -- env | grep EDITOR
戻り値 EDITOR=/usr/bin/vim
EDITORを機能させるために次のことができることを認識しています。
- Set 
env_editor、env_keep+=EDITORまたはsudoersでEDITOR変数を保持する他のオプション:任意の実行を許可する可能性があるため(たとえばexport EDITOR=~/bad_program_to_run_as_root) - 使用
sudo -Eまたは偶数alias sudo='sudo -E':env_resetSETENVを持たないユーザーと(ユーザーに提供したくないもの:前のポイントを参照)を無効にしますsudo: sorry, you are not allowed to preserve the environment - Set 
editor=/usr/bin/vim:しかし、vimを知らない他のユーザーがいます - 使用
sudo select-editor:閉じるが、sudo visudoそれでも開くnano - ただ、sudoeditを使用するか、直接VIM:しかし、その後、あなたはのようなツールの安全性を失い
visudo、vipw、crontab -e。 - それに対処する:おそらく、しかし、私はいくつかの洞察を逃しているなら、私は知りたい
 
またVISUAL、SUDO_EDITOR変数を設定しようとしました(必死に)
sudo visudo上記の妥協をせずに、選択したユーザーエディターでオープンにする、私が見逃したものはありますか?
編集:
なぜこれが期待どおりに機能しないのか理解できたと思います。他の誰かが同じ誤解を持っている場合に備えて、私はここにそれを置きます。
sudoersファイル内
Defaults        editor=/usr/bin/nano:/usr/bin/vim
- 実行時に許可されるエディターのリストのみを参照します
visudo(他のプログラムは不可) editor$ EDITORをチェックしますが、実行中のsudo visudo場合sudoは$ EDITORを設定しないため、visudo実行時には空になります- したがって、この場合は最初のエディターが使用されます 
nano 
誰でもこれが正しいことを確認できますか?
したがって、安全な解決策は以下を追加することであると予想しました。
Defaults!/usr/sbin/visudo env_keep+=EDITOR
つまり、visudoを実行している場合にのみ、EDITORを保持します。これは次にチェックされます
Defaults                  editor=/usr/bin/nano:/usr/bin/vim
そして、それが一致しなかった場合、どちらも使用します nano
奇妙なことに、これはそうではないようです:
$ sudo su - root
# export EDITOR=/bin/echo
# visudo
/etc/sudoers.tmp
visudo: /etc/sudoers.tmp unchanged
/bin/echoエディターとして使用されます。バグ?または別の誤解?
ありがとう
VISUALが優先することに言及するからEDITORです。私のEDITOR変数はただ無視されていると思った。結局、Centos7の両方でEDITOR、VISUALデフォルトはのようですpico。