2016-04-07 18 views
1

/etc/ppp/chap-secretのファイルにbash scriptで実行するファイルをphp shell_execで挿入しようとしています。PHP経由でbashスクリプトを実行するとエラーが発生する

私は正しい方法でにいることを願っていますか、より良い方法がありますか?

0:私の仕事は、私はまた、私はこの errorを得る www-data ALL=NOPASSWD: /etc/ppp/test.sh to sudoers.

を追加

/var/www/test.php:

<?php echo shell_exec("cd /etc/ppp; bash test.sh"); ?> 

/etc/ppp/test.sh:

#!/bin/bash 
sed -i "/IP addresses/a client123* pw123123 192.168.0.101" chap-secrets 

、以下のようなものです何でも

はsedのは:一時ファイル./sedXym2Nnを開くことができませんでした:許可は、端末から

を拒否されたすべてが正常に動作しますが、私は、ボタンのクリックを経由して管理ウェブからそれを必要とします。

どのようにパーミッションエラーを修正し、このプロセスを取得するには?

+0

は極めて無分別です。 – tripleee

答えて

0

システムファイルへのWebサーバーアクセスを許可することは無意味だと思われますが、少なくともラッパースクリプトを使用して、スーパーユーザー権限で任意のコマンドを実行しないようにしてください。それは言った:

あなたはパスワードなしで/etc/ppp/test.shwww-data sudoアクセスを与えましたが、あなたのshell_exec機能からsudoでコマンドを実行していません。

呼び出しshell_exec("cd /etc/ppp;sudobash test.sh");はすべきことです。システムファイルへのWebサーバーの書き込みアクセスを許可

関連する問題