Требования к разрешениям suPHP для всех файлов или только для скриптов PHP?
Обычно в PHP файлы / папки имеют разрешение 0777
когда мы хотим написать им. suPHP запрещает разрешение 0777
, Вместо этого файлы должны иметь разрешение 0644
и папки имеют разрешение 0755
, Тем не менее, это всегда сформулировано иначе
- SuPHP не разрешит chmod из 777, поэтому нам нужно установить для всех файлов значение 644, а для каталогов - 755.
- Ваши скрипты и каталоги теперь могут иметь максимум 755 разрешений.
- Установите права доступа к файлам, чтобы разрешить доступ для чтения только вам (например, chmod 600 filename.suphp).
Каково точное правило и к каким файлам оно относится? Если у меня есть README
Файл где-то во вложенном каталоге требует обновления его разрешения или применяется только к .php
файлы?
1 ответ
Это зависит от владельца файла / каталога. Просто помните, что PHP под suPHP будет обращаться к PHP-сценариям как пользователь-владелец, и эти PHP-сценарии будут работать как этот пользователь, то есть все, что они читают или пишут, выполняется как этот пользователь. Таким образом, PHP-скрипты должны быть доступны для чтения только владельцу.
Тем не менее, все остальное, не являющееся сценарием PHP, доступно как пользователь Apache (к ним не обращается suPHP), что означает, что пользователю требуется как минимум доступ на чтение к файлам и доступ на чтение и выполнение к каталогам. Если эти файлы принадлежат обычному пользователю, они должны быть доступны для чтения во всем мире (и могут использоваться для всех каталогов). Но если они принадлежат пользователю веб-сервера (никто, www-data, apache, в зависимости от дистрибутива), они должны быть только для чтения владельцем / исполняемым владельцем.
Примечание для каталогов: Apache (при обслуживании файлов, отличных от PHP) будет пытаться прочитать все каталоги в пути, ища файлы.htaccess, если он не сможет исследовать каталоги, произойдет сбой с ошибкой 403, даже если файл доступен для чтения,
Итак, я думаю, что для большинства веб-сайтов или веб-приложений все файлы (файлы PHP и не-PHP-файлы и каталоги) будут принадлежать одному пользователю, поэтому разрешения будут:
- PHP-скрипты: 0400 (u + r) или 0600 (u + rw), если PHP нужно изменить их.
- файлы, отличные от PHP: 0444 (ugo+r) или 0644 (u+rw,go+r), если PHP необходимо изменить их.
- каталоги: 0555 (ugo+rx) или 0755 (u+rwx,go+rx), если PHP должен создавать в них файлы.
Еще одно примечание: даже если вы установите 0400 для сценария PHP, он может быть изменен другим сценарием PHP, принадлежащим тому же пользователю, так как он может просто запускать chmod из PHP, поэтому 0400 не безопаснее, чем 0644. Это применимо только при использовании suPHP.