web-dev-qa-db-ja.com

Redhatinitスクリプトのベストプラクティス

(rootではなく)特定のユーザーとしてプログラムを実行するinitサービススクリプトを作成したいと思います。次に、このスクリプトをchkconfigして、本番環境の実行レベルにインストールします。

スクリプトにsuコマンドを入れることもできますが、これを行うためのベストプラクティスがあるかどうか疑問に思いました。

ありがとう、ギャリー

3
Garry Harthill

suだけできます。スクリプトは最初はrootとして実行されるため、パスワードは必要ありません。

runuserコマンドもあります。

/etc/init.d/functionsを使用する場合は、実行するユーザーを指定するオプションがあるdaemon関数を使用できます。

私は個人的に後者に向かって揺れ動き、他のすべてのものは平等です。

9
Jason Tan

Redhatスタイルのinitスクリプトを作成する場合、daemon関数には--userオプション。

daemon --user=$runasuser --pidfile="$PIDFILE" $yourbinary $youroptions
3
Dan Pritts

ベストプラクティスは、Sudoを使用し、必要なファイルを変更して、パスワードの入力を求められることなく自動的に実行されるようにすることです。スクリプトにパスワードが含まれていてもかまわない場合は、次のようなことができると思います。

 echo password | Sudo -S -u username command

何してるの?たぶんもっと良い方法がありますか?

[〜#〜]編集[〜#〜]

ありがとうTCampbell

0
Matt Simmons