sudo で 環境変数を引き継ぐ

sudo を使うと root の権限でコマンドを実行することができますが デフォルトの設定では、環境変数も変わってしまうため 権限だけ root にすることができません。

というわけで、環境変数を引き継ぐようにしてみます。

sudo の設定ファイル /etc/sudoers を visudo で編集します。

# visudo

次のような箇所があります。

Defaults    env_reset
Defaults    env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KD
                        LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \
                        LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDEN
                        LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_N
                        LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUA
                        _XKB_CHARSET XAUTHORITY" 

これは引き継ぐ環境変数を設定しています。

特定のユーザ (testuser1) で、全ての環境変数を引き継ぐには 次のような行を追加します。

Defaults:testuser1 !env_reset

testuser1 で sudo を使うと 環境変数を引き継いでくれます。

Digest: generating secret for digest authentication

httpd で error_log に次のようなメッセージが出ることがあります。

[notice] Digest: generating secret for digest authentication ...
[notice] Digest: done 

これは Digest 認証用のモジュール mod_auth_digest.so が ロードされているためのようです。

notice なので問題はないですが、 Digest 認証用を使用していないのであれば mod_auth_digest.so をロードしないように コメントアウトすれば出なくなります。

Google サイト内検索

Amazonアソシエイト