手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 共通環境の基本設定 – /etc/environment と proxy 変数を管理する

関連する記事

Ubuntu 26.04 のサーバーを複数台で運用する場合、PATH や proxy 変数の扱いをそろえておくと、APT、curl、Python、管理コマンドの挙動差を減らせます。

この記事では、/etc/environment に共通の PATHHTTP_PROXYHTTPS_PROXYNO_PROXY を設定し、ログインシェル、sudo、systemd 管理サービスで確認するときの基本をまとめます。

この記事で扱うこと
  • /etc/environment の役割
  • Ubuntu 26.04 の標準的な PATH
  • 大文字/小文字の proxy 変数
  • NO_PROXY の指定
  • ログイン後、sudo、curl、APT での確認
対象 OSUbuntu 26.04 Server
設定ファイル/etc/environment
主な項目PATHHTTP_PROXYHTTPS_PROXYNO_PROXY
確認コマンドprintenvenvcurl
参考書籍
参考書籍
Ubuntu Server Administration
Ubuntu Server の共通設定、パッケージ管理、運用確認を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見る
このリンクは Amazon アソシエイトリンクです。

/etc/environment の役割を確認する

/etc/environment は、shell script ではなく、システム全体の環境変数を設定するためのファイルです。複雑な条件分岐や command substitution は置かず、単純な key/value として扱います。

  • shell script として実行されるファイルではない
  • PATH などの共通値を置く
  • proxy 変数は大文字と小文字の両方を用意すると互換性が高い
  • 認証情報を含む proxy URL は扱いに注意する
  • 変更後は新しい login session で確認する

PATH を設定する

Ubuntu 26.04 の基本的な管理コマンドが見つかるように、/usr/local/sbin/usr/local/bin/usr/sbin/usr/bin/sbin/bin/snap/bin を含めます。

コマンド
sudo cp -a /etc/environment /etc/environment.bak
sudo tee /etc/environment >/dev/null <<'EOF'
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
EOF
sudo chmod 0644 /etc/environment
sudo chown root:root /etc/environment
cat /etc/environment

proxy 変数を設定する

proxy が必要な環境では、HTTP_PROXY / HTTPS_PROXYhttp_proxy / https_proxy を両方設定すると、多くのツールで扱いやすくなります。

コマンド
sudo cp -a /etc/environment /etc/environment.bak
sudo tee /etc/environment >/dev/null <<'EOF'
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
HTTP_PROXY="http://proxy.example.com:8080"
http_proxy="http://proxy.example.com:8080"
HTTPS_PROXY="http://proxy.example.com:8080"
https_proxy="http://proxy.example.com:8080"
NO_PROXY="localhost,127.0.0.1,::1,.example.com"
no_proxy="localhost,127.0.0.1,::1,.example.com"
EOF
sudo chmod 0644 /etc/environment
sudo chown root:root /etc/environment
cat /etc/environment

NO_PROXY を決める

NO_PROXY には、proxy を経由させない宛先を指定します。localhost、管理用ドメイン、内部 API、内部 Registry、LDAP などは、環境に合わせて明示します。

コマンド
sudo cp -a /etc/environment /etc/environment.bak
sudo tee /etc/environment >/dev/null <<'EOF'
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
HTTP_PROXY="http://proxy.example.com:8080"
http_proxy="http://proxy.example.com:8080"
HTTPS_PROXY="http://proxy.example.com:8080"
https_proxy="http://proxy.example.com:8080"
NO_PROXY="localhost,127.0.0.1,::1,.example.com,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
no_proxy="localhost,127.0.0.1,::1,.example.com,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
EOF
sudo chmod 0644 /etc/environment
sudo chown root:root /etc/environment
cat /etc/environment

ログイン後に確認する

/etc/environment は現在の shell に即時反映されるとは限りません。新しくログインし直すか、必要に応じて明示的に環境を読み直して確認します。

コマンド
printenv PATH
printenv HTTP_PROXY
printenv http_proxy
printenv NO_PROXY
env | grep -E 'PATH|HTTP_PROXY|http_proxy|NO_PROXY|no_proxy'

sudo と管理コマンドで確認する

通常ユーザーでは見えていても、sudo 実行時に環境変数が引き継がれない場合があります。必要な運用では、sudoers の env_keep や個別コマンド側の proxy 設定も確認します。

コマンド
sudo env | grep -E 'PATH|HTTP_PROXY|http_proxy|NO_PROXY|no_proxy'
sudo -E env | grep -E 'PATH|HTTP_PROXY|http_proxy|NO_PROXY|no_proxy'
sudo apt update
curl -I https://example.com/

systemd サービスとの違いを確認する

/etc/environment の値が、すべての systemd service に期待通り渡るとは限りません。サービス固有の proxy が必要な場合は、unit の drop-in やアプリケーション設定で分けて管理します。

コマンド
systemctl show --property=Environment ssh.service
systemctl cat ssh.service
systemctl status ssh.service --no-pager

確認ポイント

  • /etc/environment が root 所有で 0644 になっている
  • PATH に管理コマンドの標準パスが含まれている
  • 必要な場合だけ proxy 変数を設定している
  • NO_PROXY に内部宛先を入れている
  • 新しい login session で printenv を確認している
  • sudo や systemd service への反映範囲を誤解していない

まとめ

Ubuntu 26.04 の共通環境設定では、/etc/environmentPATH と必要な proxy 変数を定義し、サーバー間の基本的な挙動差を減らします。

ただし、/etc/environment は万能の proxy 設定ファイルではありません。ログイン session、sudo、APT、curl、systemd service では扱いが異なるため、どこに反映される設定なのかを確認しながら使うことが大切です。

関連する記事
Ubuntu 26.04 共通環境の基本設定 – /etc/environment と proxy 変数を管理する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る