18

chmod()私が現在取っているコースは少し時代遅れであり、safe_mode が含まれているため、from PHPの概念を理解するのに少し苦労しています。safe_mode がオフになっているためchmod()、コマンドを実行する所有者と所有者が異なる場合にファイルへのアクセス許可を変更する制限が削除されると記載されています。XAMPPと組み合わせてPHP 5.5.9を使用しています.フラグがオフになっていることを確認しました(念のため)が、動作していないようです. 次の PHP スクリプトを実行すると、次のようになります。

echo "File permissions :" .  decoct(fileperms("file_permissions.php"));
chmod("file_permissions.php" ,0777);

次の出力を受け取ります。

Warning: chmod(): Operation not permitted

ファイルに対する私の権限は次のとおりです

-rwxrwxrwx@  1 joelhernandez  staff     24 Apr 14 06:59 file_permissions.php

そして、私のWebサーバーがユーザー "daemon" の下で動作しているps aux | grep httpdことを確認するために実行しました。

ファイルの所有権をdaemonに変更すると、次のようになります。

-rwxrwxrwx@  1 daemon  staff     24 Apr 14 06:59 file_permissions.php

すべてが機能しますが、safe_mode がオフになっていると、ファイルの所有権は何の意味も持たず、代わりにファイルのアクセス許可がアクセスを処理する方法であると理解していたので、その理由がわかりません。

4

1 に答える 1

28

daemonユーザーは ではないため、別のrootユーザーが所有するファイルのモードを変更することはできません。ここでは PHP safe_mode が原因ではありません。この警告は、Web サーバーのユーザーがモードを変更する権限を持っていなかったため、試行された操作が失敗したことを示しています。

daemonユーザーは自分が所有するファイルのモードを変更できるため、ファイルの所有権を手動で に変更した後、操作は成功しました。

于 2014-04-14T21:13:51.283 に答える