GNU/Linux >> Linux の 問題 >  >> Linux

Upstart:非特権ユーザーとしてサービスを実行し、root として事前開始スクリプトを実行します。

upstart systemd に相当する機能はありません の PermissionsStartOnly 設定。ジョブ内のすべてのプロセスは、setuid を介して設定されたユーザーとして実行されます クックブックが言うように、スタンザ。

だから、daemontools の方法で物事を行います。

setuidgid を使用 、 setuidgids6-setuidgidchpstrunuid 、または setuidgid exec で スタンザ:

exec \
setuidgid somebody \
unicorn -D -c /opt/posty_api/unicorn.rb --env production >> /var/log/posty/upstart.log 2>&1

ところで、これはひどいロギング メカニズムです。 daemontools の方法では、multilog を使用して、適切で、自動的にサイクルされ、オンデマンドでローテーション可能で、サイズが制限されたログが作成されます。 、 multilogs6-logsvlogdtinylog 、または cyclog . upstart ただし、その expect を考えると、それらと統合するのは難しいです

expect fork
exec \
setuidgid somebody \
unicorn -D -c /opt/posty_api/unicorn.rb --env production 2>&1 | \
/usr/local/bin/chdir /var/log/ \
setuidgid log \
cyclog posty/unicorn/

(chdir これは nosh からのチェーンロードのものです パッケージであり、厳密には必要ありません。しかし、それは物事をいくらか整頓します.)


Linux
  1. 非特権ユーザーとして「unshare-n[プログラム]」を実行することは可能ですか?

  2. Sudoユーザーとrootユーザーの違いは?

  3. Init.dスクリプトが起動時に実行されていませんか?

  1. スクリプトをルートとして遡及的に実行する方法は?

  2. ユーザーとして引数を使用してスクリプトを実行しますか?

  3. initスクリプトで特定のユーザーとしてコマンドを実行する方法は?

  1. 別のユーザーとして bash スクリプトの一部を実行する

  2. root と sudo の違いは何ですか?

  3. root ユーザーと非 root ユーザーの異なるシェル