リモート サーバーを呼び出して DNS レコードを変更する PHP スクリプトをリモート コンピューターから呼び出す必要があります。これは可能ですか?テスト環境ではすべて正常に動作していますが、PHP にはアクセスできません/var/namdd/mydomain.com.db
。私がルートアクセス権を持っているのは私のVPSなので、アクセス権を取得することは問題ではありません. スクリプトにそれを実行してもらいたいだけです。何か案は?
2 に答える
すぐに思いつくのは次の 3 つの方法です。
- ファイルのパーミッションを変更します。
- それを行うデーモンを作成します。
- コマンドを作成し
sudo
、パスワードなしで実行するように構成します。
ファイルのパーミッションの変更
最も単純なケースは、ファイルのパーミッションを変更することです。これを行うには、おそらく少なくとも知りたいと思うでしょう
- ファイルを読んでいるユーザー、および
- PHP スクリプトを実行するユーザー。
ユーザーが同じであれば、もちろん答えは簡単です。所有者をそのユーザーに変更します。それ以外の場合、ファイルに機密情報が含まれていなければ、所有者を PHP ユーザーに変更して、すべてのユーザーに読み取りアクセスを許可できる可能性があります。最後に、これら 2 人のユーザーを含む新しいグループを作成し、ファイルのグループを変更できる場合があります。次に、ファイルのユーザーを PHP ユーザーに変更して書き込み権限を付与し、グループを作成したグループに変更して読み取り権限を付与し、それ以外のユーザーには権限を付与しません。
それを行うデーモンの作成
これはかなり複雑です。このオプションを推奨するとは言えません。基本的に、必要な特権でバックグラウンド プロセスを実行しています。このプロセスは、実行する必要があることは何でも実行でき、権限の低いプロセスと通信できます。PHP スクリプトがそのファイルを変更する必要がある場合、PHP スクリプトに代わってファイルを変更できるデーモンに要求を送信できます。
コマンドsudo
これはおそらく最良の方法の 1 つです。基本的に、ファイルに対して必要なことは何でも実行するコマンドを作成する必要があります。次に、root
(または必要な権限をまだ持っている権限の低いユーザーとして)実行すると機能することがわかっsudo
たら、PHPユーザーがより権限のあるユーザーとしてパスワードなしで実行できるように構成できます。