В моем проекте Django мне нужно иметь возможность проверить, работает ли хост в локальной сети , используя пинг ICMP. Я нашел этот вопрос SO , который отвечает, как пинговать что-то в Python и этот вопрос SO , который ссылается на ресурсы, объясняющие, как использовать файл sodoers.
A Модель устройства
сохраняет IP-адрес для хоста в локальной сети, и после добавления нового экземпляра устройства
в базу данных (через настраиваемый вид не администратор). Я предполагаю проверить, отвечает ли устройство на пинг, используя вызов AJAX к API, который раскрывает эту возможность.
Однако (из строки документации библиотеки, предложенной в первом SO вопрос) «Обратите внимание, что сообщения ICMP могут быть отправлены только процессами, запущенными с правами root»
Я не хочу запускать Django от имени пользователя root, так как это плохая практика. Однако эта часть процесса (отправка и проверка связи ICMP) должна выполняться от имени пользователя root. Если с представлением Django я хочу отправить пакет ping для проверки работоспособности хоста, тогда сам Django должен быть запущен от имени пользователя root, поскольку это процесс, который будет вызывать ping.
Эти какие решения я могу придумать, и мой вопрос в том, есть ли лучшие способы выполнять только отдельные части проекта Django с правами root , кроме этих:
Я хочу что-то вроде библиотеки «Django run as root», возможно ли это?