Я нахожусь на общем хосте и немного запутался в правах доступа к файлам:
Большинство людей сказали бы мне, что я должен сделать следующее (резюмировано):
chown -R user:nobody /home/user/www
find /home/user/www -type d -exec chmod 750 {} \;
find /home/user/www -type f -exec chmod 640 {} \;
Но я не могу ничего «накормить», и, поскольку файлы будут принадлежать пользователю: пользователю, я не знаю, какими должны быть разрешения.
Я заметил, что могу выполнить команду chmod 600 для некоторых сценариев PHP, в то время как таблицы стилей CSS должны быть доступны для чтения всем ...?
Я ищу лучший подход к безопасности в этом случае! И, пожалуйста, не говорите мне, что мне нужно перейти на выделенный сервер: зачем тогда мне задавать вопросы !?
Файлы на сайте www
подкаталог должен быть доступен для чтения действующему идентификатору пользователя работающего веб-сервера. Веб-сервер Apache часто запускается от имени пользователя nobody, group nobody или user www-data, group www-data. Итак, этому пользователю или группе требуются разрешения на чтение.
Если сценарии PHP пишут в файлы, эти файлы должны быть доступны для записи с помощью эффективного идентификатора пользователя работающей службы Apache.
Как именно это устроено, зависит от вашего хостинг-провайдера.
Если сайт является общедоступным, а сценарии не содержат паролей или уязвимых лазеек в системе безопасности (например, состояния гонки), возможно, можно будет предоставить разрешения на чтение для всего мира. Я бы хотел, чтобы все файлы принадлежали вашему личному идентификатору пользователя, а не пользователю «никто» или «пользователь». Только у вас должны быть права на запись в файлы в подкаталоге www (и его подкаталогах). Даже если ваш сайт не содержит личных или ценных данных - вы не хотите, чтобы его захватили мошенники или спамеры.
Пара полезных ресурсов: