sudo実行時のパスワードについて
お世話になります。
ジョブフローの中でchownを実行するため下記のようなサンプル実装を行ったところ、sudo時にパスワードを聞かれエラーとなりました。
| __account__ = /kompira/account/kompira_user2 | ←秘密鍵を保持するために利用。秘密鍵にパスワードは無し
| __user__ = "kompira_user"| ←OSアカウントでwheel権限有
| __password__ = "kompira_user"|
[ "mkdir -p /tmp/test" ] ->
[ "rm -rf /tmp/test/*" ] ->
#のちのSCPで使用するために"kompira_user"の秘密鍵を一時保存
download(from_file = __account__.keyfile, to_path = "/tmp/test/key.pem") ->
{
[ __sudo__ = true ] ->
[ "chown kompira_user:kompira_user /tmp/test/key.pem" ] -> ←ここでパスワードを聞かれエラー
[ "chmod 600 /tmp/test/key.pem" ]
}
一応、ターミナル上ではパスワードを聞かれることなくchown出来ることは確認できています。
[kompira_user@xxxxx ~]$ sudo chown kompira_user:kompira_user /tmp/test/key.pem
[kompira_user@xxxxx ~]$
ジョブフロー上でどのように記述すればパスワードを聞かれることなくsudoできますでしょうか。
環境は下記の通りです。
OS:RedHat8.9
バージョン:1.6.9 post3
よろしくお願いいたします。
-
正式なコメント
フィックスポイントの高橋です。
確認となりますが、こちらのジョブフローでは __host__ 制御変数などは指定おられないので、(SSHなどのリモートではなく)kompira サーバ上のローカルでのコマンド実行をなされているのだと思います。
であるとすると、制御変数 __user__ の指定は SSH などリモート接続時に利用されるもので、ローカルでのコマンド実行には利用されません。
| __user__ = "kompira_user"|
ローカルのコマンド実行では kompira_jobmngrd サービスの実行ユーザにより実行されます。例えば以下のように id コマンドの結果を表示していただくと、"kompira" ユーザによるコマンド実行であると確認できるかと思います。(ローカルのコマンド実行での実行ユーザは指定できません)
["id"] ->
print($RESULT) ->
...ローカルコマンド実行において __sudo__=true にしている場合、kompira_jobmngrd を実行している "kompira" ユーザのパスワードを __password__ で確認することになります(kompira ユーザを wheel グループに追加するなど、sudo 可能な状態にしておく必要はあります)。
kompira_jobmngrd サービスを実行している "kompira" ユーザではなく、別に追加した "kompira_user" などで sudo 実行を行いたいという場合は、(ローカル実行では対応できないため)kompira サーバに対して "kompira_user" アカウントで SSH 接続するようにしてコマンド実行するという手法も考えられます。
[ __host__ = "localhost", __sudo__ = true ] ->
参考になさってみてください。
コメントアクション
サインインしてコメントを残してください。
コメント
5件のコメント