そのため、起動時に常にパスワードを要求するソフトウェアが1つあります。そして、このgksu
パスワードプロンプトが毎回ポップアップすることなく、このソフトウェアを実行したいと思います。
最初に試したのは、パスをsudoersに追加することでした。しかし、それはうまくいきませんでした。後でポリシーキットと呼ばれるものがあることがわかりました。一部のプログラムがポリシーキットアクションの一部を使用したい場合、常にユーザーにパスワードを要求します(sudoersは効果がありません)。
PolicyKitがパスワードを要求しないようにするにはどうすればよいですか? のガイドに従いましたが、まだ機能しないため、間違ったアクションを追加した可能性があります。
質問:.pklaファイルに入力できるように、プログラムが使用するpkaction
を確認するにはどうすればよいですか?
Ubuntuにこの答えがあることを尋ねる( パスワードを要求しないようにpkexecを設定する方法? )これは、以前に見つけたリンクよりも必要なものに近い。
アプリケーションを見つける簡単な例として、独自のスクリプトを使用して説明します。廃止予定のgksu
をpkexec
に置き換えたかったので、gsuというラッパースクリプトを作成しました。
コマンドラインからgsuを呼び出します:
Detailsドロップダウン矢印に注意してください。それをクリックすると、これが明らかになります:
私の例では、pklaはorg.gnome.gedit。次の例ではこれを使用しますが、これは独自のものに置き換えます。
パスワードプロンプトなしで実行する場合は、次を設定します。
<allow_any>yes</allow_any>
<allow_inactive>yes</allow_inactive>
<allow_active>yes</allow_active>
個人的には、自分でパスワードを繰り返し入力するのは好きではありませんが、gedit
を使用してルートファイルを変更するときにパスワードを要求しないようにpkexec
を変更しません。ただし、特定のセッションで何度も実行するときにパスワードを繰り返し要求しないようにしたいと思います。 Sudo
でこれを行うことができ、システムで行ったように、期間を10分から120分に延長できます。ポリシーキットにも同様の機能が必要です。
policykit 認証のセキュリティをバイパスするのは直感に反するように思われます。詳細がない場合、私の最善のアドバイスはやらないことです。
なるほど、
Polkitを使用するには、メカニズムが一連のアクションを宣言する必要があります。アクションは、クライアントが実行するメカニズムを要求できる操作に対応し、メカニズムが/ usr/share/polkit-1/actionsディレクトリにインストールするファイルで定義されます。
pkaction --verbose
すべてのpolicykitアクションに関する詳細な出力が生成されます。これは、ローカル構成ファイルを確認するときに役立ちます。通常の方法で後で確認するために、この出力をテキストファイルにリダイレクトできます>later.review.txt
これらの構成ファイルは、コマンドSudo ls /var/lib/polkit-1/localauthority/
を発行したときにリストされたディレクトリーにあります。
10-vendor.d 20-org.d 30-site.d 50-local.d 90-mandatory.d
調べて、身元不明ソフトウェアに対応する.pklaファイルを見つけます。有用な情報がなければ、たとえばUnity Greeterのふりをします。コマンドAction=
でSudo grep "Action=" /var/lib/polkit-1/localauthority/10-vendor.d/unity-greeter.pkla
で始まる行を確認できます。
Action=org.freedesktop.NetworkManager.enable-disable-network;org.freedesktop.NetworkManager.enable-disable-wifi;org.freedesktop.NetworkManager.enable-disable-wwan;org.freedesktop.NetworkManager.enable-disable-wimax;
Action=org.freedesktop.NetworkManager.sleep-wake
Action=org.freedesktop.NetworkManager.wifi.share.protected;org.freedesktop.NetworkManager.wifi.share.open
Action=org.freedesktop.NetworkManager.settings.modify.own;org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.settings.modify.hostname
Action=org.freedesktop.NetworkManager.use-user-connections
Action=org.freedesktop.NetworkManager.network-control
詳細については、最新のpolkitリファレンスマニュアルを参照してください here およびsystemdの関連情報を参照してください here
@muruが指摘しているように、関連するQ&Aもあります here
ソース:
https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html