質問: sudoに環境変数を保存させるにはどうすればいいですか? solaris 5.10でsudo 1.7.4p 4を、rhel 4 u6でsudo 1.6.7p 5を使用する私の環境変数を保存する方法がわかりません、例えば$ pythonpath。この行をsudoersに追加しましたが、違いはありません。defaults !env_reset 私は何か悪いことをしていますか、それともsudoのインストールは単にenv_resetフラグを尊重していませんか?編集:少なくともsolaris上で、我々はこの問題がシェルに依存していることを発見しました!標準ルートシェルはbourneです。一方、sudo(sudo bash)の下でbashを実行すると、!env_presetは環境(pathとld_library_pathを含む)を保持します。これは私が言わなければならないやや複雑な行動です。
回答: defaults !env_resetオプションを指定してsudoを呼び出していないと仮定すると、-eは問題ないようです。そのエントリを完全に削除してみてください。正しいsudoersファイルを編集していることを確認しましたか?インストール方法に応じて、/etc/sudoersまたは/usr/local/etc/sudoersになる可能性があります。 visudoを使って編集しましたか?あなたはどのようにsudoを動かしていますか? sudo python、sudo su、sudo su -、sudo -s、他に何か?環境を保護するのはsudo pythonとsudo suだけです。env | grep pythonpathは何と言っていますか?何もない場合は、export pythonpathを実行してpythonpathがエクスポートされていることを確認してから、やり直してください。sudo env | grep pythonpathは何と言っていますか?期待値が表示された場合は、pythonpath値が他のものによって上書きされています。 rootの.bashrcや.bash_profile、あるいはシステム全体の設定ファイルかもしれません。