Права доступа к файлам и скриптам
Правильная настройка прав доступа к файлам имеет очень важное значение. От этого зависит безопасность вашего сайта. Кроме того, неправильно настроенные права доступа могут служить причиной ошибок в работе ваших программ и веб страниц.
Настраивая права доступа к файлам, вы должны знать, под какими именами веб сервер выполняет ваши программы и считывает веб страницы. - Все CGI-программы, а также asp-страницы выполняются с именами пользователя и группы - владельца сайта.
- Все остальное - HTML страницы, программы mod_perl, mod_php, java-сервлеты, jsp-страницы, ... - выполняется с именами пользователя и группы www.
- SSI-страницы вызываются под именами www.www. Однако запускаемые из SSI-страниц CGI-скрипты имеют имя и группу владельца сайта.
Исходя из этих сведений и настраиваются права доступа:
Те файлы и скрипты, которые запускаются под именем www.www, должны иметь признаки чтения всеми. Если это исполняемые файлы (mod_perl), то должны еще быть и признаки выполнения всеми. Файлы, выполняемые под вашими именами пользователя и группы, не обязаны содержать признаки чтения и выполнения всеми. Вы можете даже убрать разрешение чтения/выполнения членами вашей группы (FTP-пользователями вашего сайта). В этом случае вы полностью застрахованы от того, что ваш файл прочитают посторонние пользователи. Вы можете смело располагать прямо в файле такие сведения, например, как пароли доступа к базам данных. Кроме суперпользователя root и самого веб сервера, эти файлы сможете прочитать или исполнить только вы сами. Если файл создан не вами, а одним из ваших FTP-пользователей, то имя владельца не будет совпадать с тем, под которым его будет запускать веб сервер. В этом случае признак чтения (и исполнения, если требуется) должен быть проставлен для группы тоже. Но открывать чтение (и исполнение) для всех в этом случае все равно не требуется.
Варианты настройки прав доступа к различным типам файлов вы можете проследить из следующей таблицы.
| CGI Perl | rwx --- --- | 700 | user.user |
| rwx r-x --- | 750 |
| CGI Python | rwx --- --- | 700 | user.user |
| rwx r-x --- | 750 |
| CGI TCL | rwx --- --- | 700 | user.user |
| rwx r-x --- | 750 |
| CGI PHP | rw- --- --- | 600 | user.user |
| rw- r-- --- | 640 |
| ASP (VBScript,JavaScript) | rw- --- --- | 600 | user.user |
| rw- r-- --- | 640 |
| ASP (PerlScript) | rw- r-- r-- | 644 | www.www |
| Java сервлеты | rw- r-- r-- | 644 | www.www |
| JSP-страницы | rw- r-- r-- | 644 | www.www |
| HTML-страницы | rw- r-- r-- | 644 | www.www |
| SSI-страницы | rw- r-- r-- | 644 | www.www |
| mod_php скрипты | rw- r-- r-- | 644 | www.www |
| mod_perl скрипты | rwx r-x r-x | 755 | www.www |