RHEL 7を使用していて、Sudoの環境変数を設定したいと思います。
Rootユーザーに切り替えるためにSudo su
を実行し、その.bashrc
ファイルにexport
を追加しました。次に、それらをsource
でリロードしました。
env
をroot
モードで実行すると、環境変数があります。ただし、終了してSudo env
を実行すると、実行されません。
なぜこれが起こっているのですか?
Sudo
は、独自の制限された環境でプログラムを実行します(マニュアルman Sudo
の環境セクションを参照)。プログラムの実行に暗黙的にbash
を使用しないため、~/.bashrc
は実行されませんが、明示的に呼び出すことはできます。
Sudo bash --rcfile=~root/.bashrc -c ProgramAndParameters
実行文字列に環境変数を設定できます。
Sudo variable=value ProgramAndParameters
デフォルトでは、エイリアスまたは関数を使用してこれらのいずれかを実行できます。
または、環境ファイルを/etc/sudoers
に追加することもできます(詳細については、man sudoers
を参照してください)。