子プロセスのジョブフローの実行ユーザを指定する方法

回答済み

コメント

2件のコメント

  • 正式なコメント
    Ichiro Takahashi

    フィックスポイント開発部の髙橋です。

    特権ユーザに限り、プロセスの実行ユーザをプロセスオブジェクトの user プロパティを書き換えることで変更することができます。

    サンプルを以下に示します(root で実行してみてください)。

    # 子プロセスを起動して実行ユーザを書き換えて、別のジョブフローBを実行します。
    { fork |
    [proc = current()] ->
    [user("guest") >> proc.user] ->
    [./ジョブフローB]
    }
    • current() で実行中のプロセスオブジェクトを取得しています。
    • user() でユーザ名からユーザオブジェクトを取得しています。

    ここでは fork して子プロセスの実行ユーザを変更していますが、元のジョブフローを管理者権限で動作継続する必要がなければ、fork せずに元のプロセスの実行ユーザを変更してしまうことも可能です。ただし管理者以外に変更した場合は、以後実行ユーザは変更できないことにご注意ください。

    参考になさってみてください。

    以上、よろしくお願いいたします。

    コメントアクション Permalink
  • 岡 和人

    期待通りの動作ができました!
    ありがとうございます。

    ヘルプを見て、カレントのプロセスの実行ユーザしか変えられない?と思ってたんですが、
    "ユーザを変えて、子プロセスを実行する"をfork内でやれば良いんですね。
    盲点でした。

    0
    コメントアクション Permalink

サインインしてコメントを残してください。