私のphpスクリプトの権限がルートに設定されている場合、スクリプトはルートユーザーとしてコマンドを実行できると想定しました。しかし、どうやらそうではないようです。www 以外には何も書き込めないことに気付きました。テキスト ファイルを /test.txt に書き込もうとすると、非ルート ユーザーはアクセスのみできるが、作成や作成はできないという / のアクセス許可のために、ファイルが作成されません。削除しますが、スクリプト自体にはルート権限があります。/ で権限を変更すると、正常に動作します。ルート権限を持つように設定されたphpスクリプトが/ディレクトリに書き込めないのはなぜですか?
また、php スクリプトをスーパーユーザーとして実行できるようにするにはどうすればよいですか?
exec() を使用したいのですが、うまく動作しないようです。crontab を作成できるようにしたいのですが、うまくいきません。次のようなコードを書きました。
exec("crontab -l > test.txt; echo '* * * * * echo hi! > /root/Desktop/hi.txt'>> test.txt; crontab test.txt");
しかし、それはうまくいきません。文字列を端末にコピーすると、期待どおりに機能します。