(rootではなく)特定のユーザーとしてプログラムを実行するinitサービススクリプトを作成したいと思います。次に、このスクリプトをchkconfigして、本番環境の実行レベルにインストールします。
スクリプトにsuコマンドを入れることもできますが、これを行うためのベストプラクティスがあるかどうか疑問に思いました。
ありがとう、ギャリー
su
だけできます。スクリプトは最初はrootとして実行されるため、パスワードは必要ありません。
runuser
コマンドもあります。
/etc/init.d/functions
を使用する場合は、実行するユーザーを指定するオプションがあるdaemon
関数を使用できます。
私は個人的に後者に向かって揺れ動き、他のすべてのものは平等です。
Redhatスタイルのinitスクリプトを作成する場合、daemon
関数には--user
オプション。
daemon --user=$runasuser --pidfile="$PIDFILE" $yourbinary $youroptions
ベストプラクティスは、Sudoを使用し、必要なファイルを変更して、パスワードの入力を求められることなく自動的に実行されるようにすることです。スクリプトにパスワードが含まれていてもかまわない場合は、次のようなことができると思います。
echo password | Sudo -S -u username command
何してるの?たぶんもっと良い方法がありますか?
[〜#〜]編集[〜#〜]
ありがとうTCampbell