2017-03-29 1 views
0

Linuxのdebian Jessieのコマンドライン機能を作成するPHPアプリケーションを1つビルドします。すべての動作はfneですが、私はrootユーザーのようないくつかのコマンドを使えるようにする必要があります。rootユーザーのようにPHP shell_exec()を実行

shell_exec()などのコマンドを使用してPHP経由でrootユーザーにアクセスする方法はありますか?

このコマンドラインのアイデアは、そのサーバーにアクセスできるユーザーが、インターネット経由で任意の場所やデバイスからアクセスできるようにすることです。 PHP経由でrootとしてコマンドを実行

enter image description here

答えて

2

が悪意のある牛車のすべての種類に大きく開いて自分を残します:ここでは

は、コンソールのイメージです。

"sudo"のドキュメントをご覧ください。

"sudo"可能なスクリプトとして必要なすべてのコマンドを設定できるはずです。限られた機能を持つ特定のスクリプトを作成する方が、基本的な特権コマンドを公開するよりはるかに優れています。

のように:

exec ('sudo getCurrentUser.sh') 

まず、あなたはそれがすでに割り当てられていない場合はsudoグループにPHPを実行するために使用しているユーザー(それがwww-dataでほとんどの時間)を追加する必要があります。あなたのphpファイルで次に

、:

使用はsudo -S、あなたがパスに問題がある場合は、エコー

$exec = "echo your_passwd | /usr/bin/sudo -S your command"; 
exec($exec,$out,$rcode); 

経由でパスワードを渡すことができるように -

"bash -lc 'echo your_passwd | /usr/bin/sudo -S your command'" 
を使用

だから、ログインシェルのように動作し、パスが設定された新しいbashが得られる

+0

これは素晴らしいことです!私はそれが広く開かれることを知っているが、それはこのサーバーが私たちのWeb開発チームのためのローカル企業サーバーであり、彼らはすべてSSHクライアント経由でアクセスできるが、このAPでは非ルートとチームリーダーコンソールの完全な制御を使用します。ありがとう! –

+0

私が言及することを忘れていることの一つは、誰もsudoerではありません。 'sudo'ユーザを設定せず、そのコマンドはサーバ上で動作しません。管理者だけが独自の 'su'アクセスを使います。 –

関連する問題