RHEL 7 を使用しており、sudo の環境変数を設定したいと考えています。
ルート ユーザーに切り替えて、そのファイルにsudo su
追加するために を実行しました。その後、 でそれらを再ロードしました。export
.bashrc
source
env
現在、モードで実行するとroot
環境変数が設定されます。ただし、終了して実行すると設定sudo env
されません。
なぜこのようなことが起こるのでしょうか?
答え1
sudo
は、独自の制限された環境でプログラムを実行します (マニュアルの環境セクションを参照)。プログラムの実行にman sudo
暗黙的に を使用しないため、実行されませんが、明示的に呼び出すことはできます。bash
~/.bashrc
sudo bash --rcfile=~root/.bashrc -c ProgramAndParameters
実行文字列に環境変数を設定できます。
sudo variable=value ProgramAndParameters
デフォルトでは、エイリアスまたは関数を使用してこれらのいずれかを実行できます。
代わりに、環境ファイルを追加することもできます/etc/sudoers
(man sudoers
詳細については、を参照してください)。
答え2
sudoersエントリは以下のとおり
%DBTEAM ALL = (oracle) NOPASSWD: ALL
DBTEAM --> グループ名
oracle --> oracle ユーザー名
環境変数なしでターゲットユーザーに切り替える
sudo -s -u oracle
環境変数を使用してターゲットユーザーに切り替える
sudo -i -u oracle