Mam aplikację GUI, która musi wywoływać demona (napisanego w języku Python) z uprawnieniami administratora. Chciałbym to zrobić bez pytania użytkownika o hasło.
Ponieważ demon jest skryptem, nie mogę ustawić bitu SUID bezpośrednio. Mógłbym do tego napisać opakowanie C, ale wolałbym nie wymyślać na nowo koła, zwłaszcza gdy błąd z mojej strony może poważnie zagrozić bezpieczeństwu systemu.
Zwykle w tej sytuacji dodam wiersz, /etc/sudoers
który pozwala użytkownikom uruchamiać demona jako root bez hasła, przy użyciu dyrektywy NOPASSWD. Działa to dobrze z wiersza poleceń. Jednak gdy robię to z GUI, pkexec
pojawia się okno dialogowe z pytaniem o hasło użytkownika. Wygląda na to, że w Ubuntu połączenia sudo
z GUI są w jakiś sposób przechwytywane pkexec
.
Czy jest na to czysty sposób? Naprawdę wolałbym nie mieć do czynienia z kłopotami ze skryptem setuid.
sudo somecommand
, pojawia się pkexec
okno dialogowe z hasłem, niezależnie od tego, czy istnieją zasady sudoers umożliwiające wykonywanie programu.