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


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

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

Author: Sean Clark Hess, 2009-08-06

3 answers

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

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


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

 21
Author: Pascal MARTIN, 2009-08-06 16:31:57

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

 24
Author: danamlund, 2009-08-06 18:59:04

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

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

 2
Author: cletus, 2009-08-06 16:28:22