3

mkdir() を使用して php にフォルダーを作成すると、 www-data : www-data ユーザーと 755 のアクセス許可が付与されます。

問題は、ftp-user (zapbe:psasrv) でこのフォルダーを削除できないことです。php で chmod($path, "0777") を使用してフォルダーを変更しようとしましたが、これは機能しません。

作成したフォルダとアップロードしたファイルを、www-data と ftp-user の両方で読み取り/削除可能にするにはどうすればよいですか?

4

4 に答える 4

5
bool chmod ( string $filename , int $mode )

PHP内では、セキュリティ上の制限がある可能性があるため、構成によっては機能しない場合があります.

上記の関数はブール値を返し、エンティティのアクセス許可の変更に成功したかどうかを知らせます。

if(!chmod($directory,0777))
{
    echo "Unable to chmod $direcotry";
}

また、PHP からの引用:

現在のユーザーは、PHP を実行するユーザーです。通常のシェルや FTP アクセスに使用するユーザーとは異なる可能性があります。モードは、ほとんどのシステムでファイルを所有するユーザーのみが変更できます。

上記の理解は、 chownを見る必要があります

于 2011-02-16T16:47:41.330 に答える
4

ディレクトリを削除するには、削除するディレクトリではなく、親ディレクトリに対する書き込み権限が必要です。親への書き込みアクセスを提供するための良い方法は、www-data とあなたの ftp ユーザーの両方がメンバーであるグループがその親を所有し、777 パーミッションを決して使用しないようにすることです。また、親フォルダーにスティッキー ビットが設定されていないことを確認してください。

于 2011-02-16T16:41:52.813 に答える
2

デフォルトでは、*nix でフォルダーを作成すると、他のユーザーはフォルダーを削除/変更できません。

www-data で作成されたフォルダーのアクセス許可を変更するには、ブラウザーから php スクリプトでコマンドを実行すると、正常に更新されます。

新しいアクセス許可を二重引用符で囲まないでください 。8 進数である必要があります。

chmod($path, 0777);
// not chmod($path, "0777);

これを行うと、誰でもフォルダーを変更できます

于 2011-02-16T16:39:49.703 に答える
0

二重引用符を削除して、ファイルの所有者も確認してください

chmod($path, 0777) 
于 2011-02-16T16:37:17.113 に答える