質問: sudo / visudoのエディターを適切に設定するにはどうすればよいですか? 私はubuntu10.04サーバーを使用しており、ユーザーのeditorの選択を尊重するようにsudoerを設定しようとしています(制限内)私の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を機能させるために次のことができることを認識しています。 env_editor、env_keep+=editor、またはeditor変数をsudoersに保持するその他のオプションを設定します。これは、何かの任意の実行を許可する可能性があるため、実行したくありません(例:export editor=~/bad_program_to_run_as_root) sudo -eまたはalias sudo='sudo -e'を使用する:env_resetを持ち、setenvを持たないユーザー(私が提供したいものではない:前のポイントを参照)が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はエディターとして使用されます。バグ?または別の誤解?ありがとう
回答: debian 7では、環境でeditorを設定することはできませんでした。nanoを使用するために、次の行を/etc/sudoersに追加しましたdefaults editor="/usr/bin/nano"