Поскольку вы устанавливаете значение переменной, почему бы не проверить значение переменной и не выйти, если оно неуместно?
X=`getinfo.sh`
[ -z "$X" ] && echo "failed" && exit 1
Предполагается, что getinfo.sh
вернет пустой при ошибке (если X
имеет нулевую длину, выйти), но вы можете изменить проверку на основе того, что getinfo
возвращается в случае сбоя. Или, что более уместно, убедитесь, что X
содержит именно те данные, которые вы ищете.
Centos / RHEL уже использовал root: root для /var/www/html. Это вопрос безопасности. Apache или никто не был незащищенным. Нелегко взломать / var / www / html, когда он установил root: root. Debian опоздал с использованием root: root на / var / www / html.
PHP-скрипты будут выполняться либо от имени:
User
в конфигурации Apache (обычно apache
или nobody
), если вы используете mod_php
php-fpm
Таким образом, пользователь, под которым будет выполняться PHP-скрипт, может быть разным. Поэтому вы сами должны установить владельца и группу в /var/www/html
(или там, где находится ваш DocumentRoot
) соответствующим образом.
Более того, вы можете вообще не желать, чтобы ваше PHP-приложение могло записывать (или перезаписывать) файлы в вашем DocumentRoot
, поскольку это может позволить посетителю взломанного или небезопасного PHP-приложения получить привилегии удаленного выполнения кода. Поэтому вы сами должны решить, является ли ваше PHP-приложение достаточно надежным, чтобы позволить ему писать в файлы, которые Apache может обслуживать через интернет или даже исполнять.
PHP практически никогда (и никогда не должен!) не будет запущен от имени root по причинам, аналогичным вышеупомянутым.