Приветствую.
Допустим, мне нужно из непривилегированного кода на Python уметь получать SMART-данные с установленных в системе дисков. Непосредственно обёртка над smartctl у меня уже есть. Осталось решить вопрос о разделении привилегий, т. е. сделать так, чтобы не давать основному процессу права на доступ к дискам.
Как такие вещи принято делать? Демон, UNIX-сокеты и сериализация в условный JSON? Может быть, есть какие-нибудь библиотеки для подобных задач, чтобы не велосипедить всё с нуля, включая обработку ошибок и прочих таймаутов?
(Можно, конечно, sudo smartctl
и соответствующее правило в sudoers, но это уж очень топорно.)