DebianSqueezeでBashを使用しています。私はちょうどこのトピックを読みました: crontabのデフォルトのテキストエディタをvimに変更します
変数VISUAL
とEDITOR
の両方を通常のユーザーとrootのvimにエクスポートしました。そしてこれは機能します–通常のユーザーまたはrootとしてcrontab -e
と入力すると、crontabは編集のためにvimを実行します。
しかし、Sudo crontab -e
を実行するとnanoが開きます。
Sudo echo $EDITOR
(または$VISUAL
)を実行すると、vim
int出力が得られました。
デフォルトおよびセキュリティ上の理由から、Sudo
はユーザー環境を保持しません。
これに対処する方法は複数あります。特定のケースでは、VISUAL=/usr/bin/vim
(および間違ったプログラムを使用するプログラムの場合はEDITOR=/usr/bin/vim
)を/etc/environment
に追加することをお勧めします。
2番目の選択肢は、許容的なSudo構成がある場合(おそらくそれがあなただけであるか、すべてのsudoerが実際のルートアクセス権を持っているため)、visudo
を実行してDefaults env_keep="VISUAL EDITOR"
を追加し、すべてのsudoerが独自のSudoを指定できるようにすることです。 (つまり、その環境変数を保持します)。
既存のsudoersファイルには、すでに1つ以上のenv_keepステートメントが含まれている(または含まれている)場合があります。これ(Pastebinの例から):
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
これらのenv_keep
行の最初の行は、その上で行った編集(割り当て)を上書きし、他の行はリストを拡張します(+=
)。すべてが以前のように機能し続けるために、セットを変更する理由がない限り、すぐに行を追加することをお勧めします後それら:
Defaults env_keep += "VISUAL EDITOR"
(お好みのエディターを使用する他のオプションもありますが、それらは不必要に複雑であるか、過度に寛容で危険であるため、man sudoers
を読んで自分で理解し、関連する問題が何であるかを理解する必要があります。)