У мене є програма GUI, якій потрібно викликати демон (написаний на Python) з правами суперпользователя. Я хотів би це зробити, не спонукаючи користувача до пароля.
Оскільки демон є сценарієм, я не можу встановити біт SUID безпосередньо. Я можу написати для цього обгортку C, але я краще не винаходити колесо, особливо коли помилка з мого боку могла призвести до серйозних порушень безпеки системи.
Що я зазвичай роблю в цій ситуації - це додати рядок, /etc/sudoers
який дозволяє користувачам виконувати демон як пароль без пароля, використовуючи директиву NOPASSWD. Це добре працює з командного рядка. Однак коли я це роблю з графічного інтерфейсу, pkexec
з'являється діалогове вікно із запитом пароля користувача. Схоже, що в Ubuntu sudo
якось перехоплюються дзвінки з GUI pkexec
.
Чи є чистий спосіб цього? Я дійсно не хотів би мати справу з клопотами встановленого сценарію.
sudo somecommand
, діалогове вікно, що з'являється, - це pkexec
діалогове вікно з паролем, незалежно від того, чи існує політика судерів, що дозволяє виконувати програму.