Температура жесткого диска не будет отображаться через Интернет

Я пытаюсь отображать температуру своего ИП на веб-сайте, на котором я могу получить доступ в любое место в любое время.

До сих пор мне удалось заставить процессор и графические процессоры работать. Однако мой жесткий диск не будет отображаться в браузере. Он отлично работает в терминале.

Вот фото:

Изображение

Как вы заметили, у меня не было графического процессора, но это было исправлено с помощью следующей команды:

sudo usermod -G video www-data

Мне не удалось добиться того, чтобы это работало для smartmoxntools.

Кто-нибудь знает, как заставить его работать?

Кроме того, безопасно ли это иметь на внешнем веб-сайте? Может ли хакеры вводить PHP-код для запуска команд оболочки с помощью этого?

Ответ 1

чтобы запустить некоторую привилегированную команду root на веб-сайте, вам нужно разместить www-данные в вашем /etc/sudoers, чтобы позволить www-data запускаться как root для этой команды, вот строка, которая вам нужна в /etc/sudoers:

www-data ALL=(root) NOPASSWD: /usr/sbin/smartctl

Ответ 2

При выполнении под вашим веб-сервером ваш script, возможно, настроен на другой PATH, поэтому он будет работать иначе, чем он работает в терминале.

Попробуйте поместить полный путь к smartctl в ваш script, например.

sudo /usr/local/bin/smartctl -A -d sat /dev/sda | awk '/^194/ {print $10}'