root権限が必要なRubyで書かれた特定のスクリプトがあります。他のプロセスのほとんどはそれを必要とせず、Monitでセットアップするのも簡単でした。これじゃない。制限されたユーザーとしてmonitを実行し、root権限を必要とするプロセスを監視する
サーバは386でリッスンする必要があり、このポートはルートでのみ使用できます。 1)私は低レベルの人ではないから2)sudoを使うときはこれまでうまくいっていたからだ。
MONITの設定ファイルは簡単で、次のようになります。
set logfile syslog facility LOG_daemon # Default facility is LOG_USER
set mailserver smtp.sendgrid.net
username "blah", password "blah"
with timeout 20 seconds
set alert [email protected]
set logfile /home/deploy/monit.log
check process ldapserver
with pidfile /var/pids/ldap_server.pid
start program = "/usr/local/bin/ruby /var/lib/ldap_server.rb"
stop program = "/bin/sh"
注:このプロセスの停止プログラムはありませんので、私は停止プログラムで/ binに/ SHを入れています。
私はこのように置く場合:
start program = "/usr/local/bin/ruby /var/lib/ldap_server.rb"
これは、起動に失敗します。ヒントはありません。
start program = "/usr/bin/sudo -u deploy /usr/local/bin/ruby /var/lib/ldap_server.rb
失敗します。出力はありません。
start program = "/bin/su deploy -c '/usr/local/bin/ruby /var/lib/ldap_server.rb'
失敗します。
また、stderrとstdoutをキャプチャするために出力を> ~/out.log 2 > &1
でリダイレクトしようとしましたが、動作しないようです。
今、私は制限されている配備ユーザの下で、monitを起動します。ですから、私は何とかLDAPサーバーをrootとして実行する必要がありますが、それは非常に難しいことがわかります。
誰かが私を啓発できますか?
乾杯、
M> MONITはすでにとにかくそのユーザーとして実行されているとして「展開」ユーザが(助けにはなりませんし、それが実行する必要があるとして、スクリプトを実行するsudo
またはsu
を使用して
ldap_serverスクリプトが[suid root](http://en.wikipedia.org/wiki/Setuid)ではないと仮定しますか? – huitseeker