2017-10-11 5 views
0

私は、厳しい側のアプリケーションのGUIとして機能するPHPアプリケーションを開発しています。アプリケーションの性質上、root特権を必要とするexecコマンドを実行する必要があります。 (サービスの再開など)。私はnginx sudoに特定のコマンドへのアクセス権を与えることで、それを回避することができました。しかし、それでもCLIを使って簡単にできるいくつかの機能が必要です。rootアクセスでCLIアプリケーションを作成する

私が直面している問題は、このアプリケーションをrootで引数を指定してphpから起動することです。これは私が私のアプリを起動する方法である、

path/application - e "command I want"

Webアプリケーションは、サーバー(コントロールパネルの種類など)にインストールされている唯一のいずれかになります。私はアプリケーションの代わりにサービスを作ることに焦点を当てるべきですか?私がサービスを作ったら、どうすればPHPに連絡させることができますか?私は過去に.NETとC++を使ってWindowsアプリケーションを開発しました。

私はLinuxサービスを作るためにdotnet coreを見ましたが、私はそれが私の必要とするものではないと思います。提案はありますか?私が持っている必要があるのは、おそらくsudoを使わないでルートにアクセスすることだけです。

答えて

1

アプリケーションをsetuidルートアプリケーションにできますか?

chown root /path/to/binary 
chmod u+s /path/to/binary 
+0

これがアプリケーションをrootとして実行できるのであれば、セキュリティのためにテストしてください。次に、アプリケーション内でコマンドのホワイトリストを作成して実行できるようにします(特定のコマンド)。私はLinuxの知識があまりないので、この方法を試してみましょう。 – kks21199

+0

このメソッドは機能します。オプションで、C++のmain関数内で 'setuid(0)'を設定することもできます。私の場合はそれなしで動作しますが。私は引数を介してアクセスすることができますハードコードされたコマンドで私のC + +のアプリケーションをコーディングしている..この方法は、アプリケーションが多くのダメージを与えることはできません。欠点は、新しい機能が必要なときに更新する必要があることだけです。 – kks21199

関連する問題