特定のユーザーで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'