Программе требуются повышенные привилегии, но требуется взаимодействие с пользователем.
Первый вариант: ставим suid-бит на программу.
Второй вариант: реализуем клиент-серверный вариант, сервер запускается как системный процесс с нужными правами, клиент взаимодействует с ним через IPC.
Какие есть плюсы и минусы этих вариантов?
Вариант с sudo, как я понимаю, идентичен первому.