2番目のユーザーとして実行されるシェルスクリプトの作成

2番目のユーザーとして実行されるシェルスクリプトの作成

特定のユーザーで2つのサービスを実行したいスクリプトを作成しています。スクリプトはユーザーに切り替えてからプログラムを実行し、そのプログラムを実行してから2番目のプログラムの実行を開始する必要があります。

答え1

sudo特定のユーザーにコマンドを実行するように指示できます。

 -u user, --user=user
             Run the command as a user other than the default target user
             (usually root).  The user may be either a user name or a
             numeric user ID (UID) prefixed with the ‘#’ character (e.g.
             #0 for UID 0).

したがって、スクリプトでsudo -u USERNAME次の2つのサービスを実行するために使用できます。

sudo -u foo command1
sudo -u foo command2

ただし、これはスクリプト自体をrootとして実行する必要があることを意味します。それ以外の場合は、sudoユーザーにパスワードを入力するように求められますfoo

答え2

sudo -u username -s -- "program1 && program2"

または

sudo -u username bash -c 'program1 && program2'

関連情報