Права доступа к файлам и CHMOD: Как установить 777 в PHP при создании файла? - PullRequest
10 голосов
/ 22 июня 2011

Вопрос о правах доступа к файлу при сохранении файла, который, если он не существует, изначально создается как новый файл.

Теперь все идет хорошо, и сохраненный файл выглядит в режиме 644.

Что мне нужно изменить здесь, чтобы файлы сохранялись в режиме 777?

Огромное спасибо за любые подсказки, подсказки или ответы.Код, который я считаю уместным здесь, я включил:

/* write to file */

   self::writeFileContent($path, $value);

/* Write content to file
* @param string $file   Save content to wich file
* @param string $content    String that needs to be written to the file
* @return bool
*/

private function writeFileContent($file, $content){
    $fp = fopen($file, 'w');
    fwrite($fp, $content);
    fclose($fp);
    return true;
}

Ответы [ 3 ]

23 голосов
/ 22 июня 2011

PHP имеет встроенную функцию под названием bool chmod(string $filename, int $mode )

http://php.net/function.chmod

private function writeFileContent($file, $content){
    $fp = fopen($file, 'w');
    fwrite($fp, $content);
    fclose($fp);
    chmod($file, 0777);  //changed to add the zero
    return true;
}
6 голосов
/ 22 июня 2011

Вам просто нужно вручную установить нужные разрешения с помощью chmod():

private function writeFileContent($file, $content){
    $fp = fopen($file, 'w');
    fwrite($fp, $content);
    fclose($fp);

    // Set perms with chmod()
    chmod($file, 0777);
    return true;
}
2 голосов
/ 22 июня 2011

Если вы хотите изменить права доступа для существующего файла, используйте chmod (режим изменения):

$itWorked = chmod ("/yourdir/yourfile", 0777);

Если вы хотите, чтобы у всех новых файлов были определенные разрешения, вам нужно проверить настройку umode. Это параметр процесса, который применяет модификацию по умолчанию к стандартным режимам.

Это субтрактивный. Под этим я подразумеваю, что umode из 022 даст вам разрешение по умолчанию 755 (777 - 022 = 755).

Но вы должны очень тщательно об обоих этих вариантах. Файлы, созданные в этом режиме, будут полностью защищены от изменений.

...