2012-05-06 8 views
0

この質問はこれまでに解決されていると確信していますが、私が好きな答えは見つけられません。私は別のユーザとして非常に特定のスクリプトを実行するシェルスクリプトを書こうとしています(誰もがpostgresをpostgresユーザとして起動できるようにしたい)。スクリプトには710パーマがありますので、特定のグループでは実行可能になりますが、そのグループでは読み書き可能ではありません。suがスクリプト内にパスワードなし

ここで、私は対話的なパスワードプロンプトなしで 'su'を使う方法がないと確信しています。それにはたくさんの理由があり、私はそれらの理由のメリットを確信する必要はありません(私よりも精通した人が悪いプロセスリストからパスワードを取得できると言われています)。

質問より一般的に、私がUNIXセキュリティパラダイムを乱用することなく、私がしたいことを達成する方法はありますか?ユーザーが別のユーザーとして非常に特定のプロセスを実行できるようにする方法はありますか?

答えて

3

このような状況はまさにsudoのために設計されたものです。

1

postgresユーザーとして実行するスクリプトを起動する実行可能ファイル(ではなく、シェルスクリプト)を作成できます。実行ファイルの所有者をpostgresユーザーに変更し、setuidビットを設定します。

セラダの懸念に対処するためBest practice to run Linux service as a different userを参照してください。

+1

実際のuidではなく、実効uidのみを変更することに限定されていませんか? Postgresはその違いを気にするかもしれません。 – Celada

+0

この場合、私はsudoが正しい答えだと思います。 postgresを起動して管理するデーモンは既に存在しています。私はちょうど正しいユーザーアカウントから呼び出す必要があります。それはリンクされたスレッドが優れた議論であると言いました。ありがとう! – prauchfuss

関連する問題