使ってます file_put_contents
ファイルを作成します。私のphpプロセスは、ディレクトリへの書き込み権限を持つグループで実行されています。いつ file_put_contents
が呼び出されますが、結果のファイルにはグループ書き込み権限がありません(最初は問題なく作成されます)。これは、ファイルを上書きしようとすると、権限がないために失敗することを意味します。
グループ書き込み権限を持つファイルを作成する方法はありますか?
例1(所有者とグループに対してファイルのアクセス許可を読み取り/書き込みに設定し、他のユーザーに対して読み取り):
file_put_contents($filename, $data);
chmod($filename, 0664);
例2(他のアクセス許可を変更せずにファイルをグループによって書き込み可能にする):
file_put_contents($filename, $data);
chmod($filename, fileperms($filename) | 16);
例3(他の権限を変更せずに誰でもファイルを書き込み可能にする):
file_put_contents($filename, $data);
chmod($filename, fileperms($filename) | 128 + 16 + 2);
128、16、2は、所有者、グループ、その他のそれぞれに対して書き込み可能です。
ファイルを開いて内容を上書きするには、ファイルへの書き込み権限が必要です。違いを理解することが重要です。ファイル全体を上書きするには、実際にはディレクトリへの書き込み権限が必要です。
chmod()
を使用して、ファイルまたはディレクトリ、あるいはその両方について明確にしたい場合は、適切なものを設定します。