実現したいこと
- rootからsudoコマンドを実行して、別の一般ユーザでHULFT起動コマンドを呼び出したい
発生している問題・エラーメッセージ
RHEL8.2の環境で、HULFTのプロセスを起動するスタートアップシェルを作成しています。
※ OS起動時の自動起動であればサービス登録等の手段があることは認識しておりますが、今回の目的はスタートアップシェルの作成とさせて下さい。
スタートアップシェルの実行者はrootですが、HULFTの導入者は一般ユーザ(testuser)のため、sudoでユーザを指定して
HULFTを起動しようとしています。
■スタートアップシェルの内容 //HULFT起動に必要な環境変数の設定 TERM=vt100 export TERM LANG=ja_JP.UTF8 export LANG HULEXEP=/省略/HULFT/bin export HULEXEP PATH=/省略/HULFT/bin:$PATH export PATH HULPATH=/省略/HULFT/etc export HULPATH //HULFT起動 sudo -u testuser hulsndd sudo -u testuser hulrcvd sudo -u testuser hulobsd
上記を実行したところ、hulsndd,hulrcvd,hulobsdが見つかりませんというメッセージが表示されます。
実際は、/省略/HULFT/bin/配下に全て格納されているため、見つかりませんというメッセージが表示されるのは想定外でした。
また、以下のコマンドを実行したところ想定通りのパスが表示されたため、環境変数の認識自体はできていると考えております。
コマンド sudo -u testuser echo $PATH 出力結果 /省略/HULFT/bin:…(省略)
上記のHULFT起動コマンドを成功させるにはどうしたら良いかご教示いただけませんでしょうか。
試したこと
rootやtestuserの.bash_profileにHULFT環境変数を定義した状態でも実施してみましたが、結果は同じでした。
2023/11/3 追記
--preserve-env,-Eのオプション設定検証結果を追記します。
sudo -u testuser --preserve-env=TERM,LANG,HULEXEP,PATH,HULPATH env | grep USER USER=testuser SUDO_USER=root →envで表示される内容がtestuserのものであることを確認 sudo -u testuser --preserve-env=TERM,LANG,HULEXEP,PATH,HULPATH env | grep HUL PATH=/省略/HULFT/bin:…省略 HULEXEP=/省略/HULFT/bin HULPATH=/省略/HULFT/etc →rootで設定したHULFT系環境変数が、一般ユーザtestuserに引き継がれていることを確認 sudo -u testuser --preserve-env=TERM,LANG,HULEXEP,PATH,HULPATH hulsndd sudo: hulsndd: コマンドが見つかりません →PATHが通っているにもかかわらず、hulsnddが見つからない(想定外) sudo -u testuser -E hulsndd sudo: hulsndd: コマンドが見つかりません →同様に想定外の結果となった ll /省略/HULFT/bin/hulsndd -rwxr-xr-x 1 tesruser testuser 3561755 9月 20 10:39 /省略/HULFT/bin/hulsndd →実行対象ファイルは確かに存在する

回答1件
あなたの回答
tips
プレビュー