2011-01-04 2 views
0

私は、UNIXシステムの設定ファイルの変更をトリガできる必要があるRails 3アプリケーションを作成しています。私は、バックグラウンドプロセスでそれらを実行することによって、消費者側からファイルの変更を保護したいと思います。私は、一時ファイルをレールに書き出し、bashスクリプトでファイルをコピーすることを考えましたが、実際にはシステムを保護するわけではありません。私はまた、cronベースのスクリプトを使用して手動でデータベースから引き出し、configsを更新することも検討しました。セキュリティを損なうことなくシステムファイルのルートレベルのファイル編集を実行するためのレールの取得

しかし、私が本当に好きなのは、レール環境に接続し、データベースから必要なものを読み込み、設定ファイルを更新できるコンポーネントです。設定ファイルはほとんどが/ etc/whateverにあるので、このプロセスはrootとして実行する必要があります。

提案がありますか?

ありがとうございます!

答えて

1

私の兄弟ネットワーク管理者は、入力を検証して実際に変更を加える実際の修正を行うためにRuby/Perl /何らかのスクリプトを書くべきだと言います。あなたは、このスクリプトをでレールから呼び出すことができます。あなたはまだ@parametersをサニタイズしたいと思うでしょう。 System.exec("/usr/bin/sudo", ["/path/to/script"] + @parameters)

データベースからデータを取得する限り、新しいSQL接続を作成して、railsのdatabase.ymlから情報を取得することができます。 データベース内のデータは、rootとして実行しているので検証する必要があります。

+0

これは良い解決策ですが、私はBeanstalkdのようなユーティリティでタスクを実行していることを読んで学びました。私はそこに自分の変数をサニタイズして、システムが設定ファイルを再生成している間に応答時間を掛けずに実行できるようになります。 – voxobscuro

関連する問題