Почему / var / www / html доступен для записи только пользователю root (по умолчанию)?

Поскольку вы устанавливаете значение переменной, почему бы не проверить значение переменной и не выйти, если оно неуместно?

X=`getinfo.sh`

[ -z "$X" ] && echo "failed" && exit 1

Предполагается, что getinfo.sh вернет пустой при ошибке (если X имеет нулевую длину, выйти), но вы можете изменить проверку на основе того, что getinfo возвращается в случае сбоя. Или, что более уместно, убедитесь, что X содержит именно те данные, которые вы ищете.

2
17.12.2016, 01:31
2 ответа

Centos / RHEL уже использовал root: root для /var/www/html. Это вопрос безопасности. Apache или никто не был незащищенным. Нелегко взломать / var / www / html, когда он установил root: root. Debian опоздал с использованием root: root на / var / www / html.

1
27.01.2020, 21:52

PHP-скрипты будут выполняться либо от имени:

  • Пользователь под управлением Apache, определяемый директивой User в конфигурации Apache (обычно apache или nobody), если вы используете mod_php
  • Пользователь под управлением PHP-FPM, если вы используете php-fpm

Таким образом, пользователь, под которым будет выполняться PHP-скрипт, может быть разным. Поэтому вы сами должны установить владельца и группу в /var/www/html (или там, где находится ваш DocumentRoot) соответствующим образом.

Более того, вы можете вообще не желать, чтобы ваше PHP-приложение могло записывать (или перезаписывать) файлы в вашем DocumentRoot, поскольку это может позволить посетителю взломанного или небезопасного PHP-приложения получить привилегии удаленного выполнения кода. Поэтому вы сами должны решить, является ли ваше PHP-приложение достаточно надежным, чтобы позволить ему писать в файлы, которые Apache может обслуживать через интернет или даже исполнять.

PHP практически никогда (и никогда не должен!) не будет запущен от имени root по причинам, аналогичным вышеупомянутым.

6
27.01.2020, 21:52

Теги

Похожие вопросы