Подтвердить что ты не робот

Как я могу создать файл с файлом_put_contents, у которого есть права на запись группы?

Я использую file_put_contents для создания файла. Мой php-процесс работает в группе с разрешениями на запись в каталог. Однако, когда вызывается file_put_contents, результирующий файл не имеет разрешений на запись в группе (он создает только штраф в первый раз). Это означает, что если я попытаюсь перезаписать файл, он завершит сбой из-за отсутствия разрешений.

Есть ли способ создать файл с правами на групповую запись?

4b9b3361

Ответ 1

Вы можете попробовать установить umask перед вызовом file_put_contents: он изменит разрешения по умолчанию, которые будут предоставлены файл при его создании.

Другим способом (лучше, согласно документации) является использование chmod для изменения разрешений сразу после того, как файл был создан.


Ну, после повторного чтения вопроса, надеюсь, я хорошо это понял...

Ответ 2

Пример 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 для записи для владельца, группы и других соответственно.

Ответ 3

Чтобы открыть файл и записать содержимое, вам понадобятся права на запись в файл. Важно понимать различие. Чтобы перезаписать весь файл, вам действительно нужны права на запись в каталог.

Используйте chmod(), чтобы указать, что подходит в файле и/или каталоге, если вы хотите быть явным.