環境変数がsudoでは機能しないようです。

環境変数がsudoでは機能しないようです。

私はファイアウォールの背後でaptを使用しているので、http_proxy環境変数にプロキシを割り当てます。

私がしたことは、rootユーザーの合計に次の行を追加することでした.profile(良い測定のため)。.bashrc

export http_proxy=http://proxyserver:8080

次の操作を行うと、エージェント値が正しく印刷されます。

sudo echo $http_proxy

ところでを呼び出すと、その変数がルートとして表示さsudo apt-get updateれないようです。http_proxy

プロキシを通過することは私がrootとしてsuするときにのみ期待どおりに機能するので、apt-get明らかに変数を見ることができます。

私の質問は、上記のように、なぜsudo apt-get変数を見ることができないのですか?です。

修正するただ呼び出すと、sudo echo現在のユーザープロファイルに設定されている変数の値が反映されていることがわかりました。しかし、それにもかかわらず、対応するsudo apt-get変数値を使用するとどうなりますか?

ベストアンサー1

sudo apt-getこの場合は「動作しないようです」ではなく動作しているようですあなたがこれをするときsudo echo $http_proxy

シェルコマンドを入力すると、すべての変数とエイリアスがグローバル化され、拡張されます。今後実行されます。

これにより、より柔らかくsudo echo $http_proxyなりますsudo echo http://proxyserver:8080

$http_proxy表示されない理由は、apt-getディレクティブsudoで明示的に許可された環境変数を除くすべての環境変数が消去されるためです。/etc/sudoersenv_keep

環境変数の処理方法を操作する方法sudo(または一般に環境変数の処理方法)の詳細については、いいえ)はで見つけることができますman sudoers

おすすめ記事