Я пытаюсь отобразить температуру своего ИП на веб-сайте, к которому я могу получить доступ в любое время в любом месте.
До сих пор мне удавалось работать с процессором и графическим процессором. Однако моя температура жесткого диска не будет отображаться в браузере. Он отлично работает в терминале.
Вот картинка:
Как вы заметили, у меня не отображался временный графический процессор, однако это было исправлено с помощью следующей команды:
sudo usermod -G video www-data
Однако мне не удалось заставить это работать на smartmoxntools.
Кто-нибудь знает, как заставить это работать?
Кроме того, безопасно ли иметь их на внешнем веб-сайте? Могут ли хакеры внедрить php-код для запуска команд оболочки, используя его?
чтобы запустить привилегированную команду root на веб-сайте, вам нужно поместить www-данные в ваш / etc / sudoers, чтобы позволить www-данным запускаться от имени root для этой команды, вот строка, которая вам нужна в / etc / sudoers:
www-data ALL=(root) NOPASSWD: /usr/sbin/smartctl
При выполнении под вашим веб-сервером ваш скрипт, вероятно, будет иметь другой PATH
настроен, поэтому он будет работать не так, как в терминале.
Попробуйте поставить полный путь к smartctl
в вашем сценарии, например
sudo /usr/local/bin/smartctl -A -d sat /dev/sda | awk '/^194/ {print $10}'