0

ライブ サーバーで Drupal サイトの作成を処理する Web アプリ (php) を作成しています。

このシステムは、新しいサイトを作成し、既存のサイトをメンテナンスすることができます。また、これは Web ホスティング環境であるため、各フォルダーは異なるユーザーに属している可能性があります。

それを適切に行うには、apacheユーザーが他のユーザーとしていくつかのコマンドを実行できるようにする必要があります。

git新しいファイルを作成する (および/ drush/etcと対話する) ために私が行うことは、次のようなものです。

$some_command = `echo "PASSWD" | sudo -u USER -S do_something 2>&1; echo $?;`;

ユーザーがユーザーとして実行できる一連のコマンドがsudoersファイルに既にあります。apachegit

私の問題はapache、サーバー上でホスティング アカウントを持つ可能性のある任意のユーザーとして実行する必要があることです。

私の考えは、ファイルにapache ALL=(ALL) ALLエントリを作成することでした。sudoersユーザーのパスワードを要求するこれらのコマンドはすべてそのままにしておきます。

それを念頭に置いて、このアプローチを採用するのは賢明でしょうか? そうでない場合は、ホスティング アカウントを持つユーザーにのみ「すべて許可」ポリシーを適用できます。その場合、ポリシーを 1 つのグループだけに絞り込むにはどうすればよいですか?

ありがとう


編集: Apacheが各PHPスクリプトを所有者として実行できるようにするため、これにはsuPHPを使用します。ただし、別のユーザーとして他のコマンドを実行する必要があるため (他のユーザーのホーム フォルダー/public_html にファイルを作成するなど)、それはオプションではないようです。

4

1 に答える 1

1

コメントでの議論に基づいてsuPHP、ユーザーの各スクリプトが Apache ではなく実際のユーザーによって所有されるように、次のようなものをインストールすることをお勧めします。

あなたがこの問題を抱えているのは (おそらく)、Web インターフェイスから他のユーザーのサイトの管理機能を実行できるようにしたいからだと思います。他のユーザーがスクリプトを実行できるような一般的なユーザーがいる場合apache、そのユーザーに自動sudoアクセス許可を許可することは、不正アクセスに簡単に悪用される可能性があるため、お勧めできません。

これを回避するには、他の人のファイルを変更する権限を持つ特別な管理者ユーザーとして管理機能を実行してください。また、chown作成したファイルは適切なユーザーとして読み書きできるようにしてください。また、他のユーザーがその管理者アカウントにアクセスしたり、PHP スクリプトを実行したりできない限り、より安全になります。

コンソールから管理機能を実行している場合はさらに簡単です。それ以外の場合は、ウェブからマスター機能を実行し、アカウントに適切な資格情報を使用するように suPHP ユーザーをセットアップするだけです。

そのようなことを行うと、より安全になり、必要以上に物事を開くことなく、必要なすべてを実行できるようになります.

于 2012-08-13T05:50:29.863 に答える