как я могу создать файл с содержимым file put, у которого есть разрешения на запись в группу?
Я использую file_put_contents
для создания файла. Мой php-процесс выполняется в группе с разрешениями на запись в каталог. Однако при вызове file_put_contents
результирующий файл не имеет разрешений на групповую запись (в первый раз он создается просто отлично). Это означает, что если я попытаюсь перезаписать файл, он завершится неудачей из-за отсутствия разрешений.
Есть ли способ создать файл с правами на групповую запись?
3 answers
Вы могли бы попробовать установить umask
перед вызовом file_put_contents
: это изменит разрешения по умолчанию, которые будут предоставлены файлу при его создании.
Другой способ (лучше, согласно документации) - использовать chmod
чтобы изменить разрешения, сразу после создания файла.
Что ж, перечитав вопрос, я надеюсь, что хорошо его понял...
Пример 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()
чтобы указать, что подходит для файла и/или каталога, если вы хотите четко указать это.