スーパーユーザー特権でデーモン(Pythonで作成)を呼び出す必要があるGUIアプリケーションがあります。ユーザーにパスワードを要求することなくこれを実行したいと思います。
デーモンはスクリプトであるため、SUIDビットを直接設定することはできません。このためにCラッパーを書くことはできましたが、特に自分の側の間違いがシステムのセキュリティを著しく損なうことにつながる可能性がある場合は、むしろ車輪を再発明したくないでしょう。
この状況で私が通常行うことは/etc/sudoers
、NOPASSWDディレクティブを使用して、ユーザーがパスワードなしでrootとしてデーモンを実行できるようにする行を追加することです。これは、コマンドラインから正常に機能します。ただし、GUIからこれを行うと、pkexec
ダイアログがポップアップしてユーザーのパスワードを要求します。Ubuntuでは、sudo
GUIからの呼び出しが何らかの形でインターセプトされているようpkexec
です。
これを回避する方法はありますか?setuidスクリプトの煩わしさを扱う必要はありません。
sudo somecommand
と、表示されるダイアログボックスpkexec
は、プログラムの実行を許可するsudoersポリシーがあるかどうかに関係なく、パスワードダイアログです。