sudoとenvironment

Posted on 2014/06/16(Mon) 22:05 in technical

自分用チートシート

ssh経由で直接コマンド実行する時に、sudoするとproxyが有効になりません。

備考

  • ssh経由で直接コマンドを実行するとシェル変数が読み込まれない問題と、sudoした時に環境変数が引き継がれない問題が併発しています
  • /etc/environmentでsshした時に設定される環境変数を設定
  • /etc/sudoersでsudoする時に維持される環境変数を設定

/etc/environment:

http_proxy=http://<username>:<password>@proxy.example.com:8080/
ftp_proxy=http://<username>:<password>@proxy.example.com:8080/
https_proxy=http://<username>:<password>@proxy.example.com:8080/
no_proxy=127.0.0.1,localhost

/etc/sudoers:

Defaults        env_keep += "http_proxy https_proxy ftp_proxy no_proxy"

sshを使う諸々(Fabric, Chef, Puppet, Ansibleなど)で環境構成を自動化しようとした時にも良く使う。