web-dev-qa-db-ja.com

ソフトウェアが使用するpkactionを確認する方法

そのため、起動時に常にパスワードを要求するソフトウェアが1つあります。そして、このgksuパスワードプロンプトが毎回ポップアップすることなく、このソフトウェアを実行したいと思います。

最初に試したのは、パスをsudoersに追加することでした。しかし、それはうまくいきませんでした。後でポリシーキットと呼ばれるものがあることがわかりました。一部のプログラムがポリシーキットアクションの一部を使用したい場合、常にユーザーにパスワードを要求します(sudoersは効果がありません)。

PolicyKitがパスワードを要求しないようにするにはどうすればよいですか? のガイドに従いましたが、まだ機能しないため、間違ったアクションを追加した可能性があります。

質問:.pklaファイルに入力できるように、プログラムが使用するpkactionを確認するにはどうすればよいですか?

4
PKM

Ubuntuにこの答えがあることを尋ねる( パスワードを要求しないようにpkexecを設定する方法? )これは、以前に見つけたリンクよりも必要なものに近い。

アプリケーションを見つける簡単な例として、独自のスクリプトを使用して説明します。廃止予定のgksupkexecに置き換えたかったので、gsuというラッパースクリプトを作成しました。

コマンドラインからgsuを呼び出します:

gsu pkexec

Detailsドロップダウン矢印に注意してください。それをクリックすると、これが明らかになります:

gsu pkexec details

私の例では、pklaorg.gnome.gedit。次の例ではこれを使用しますが、これは独自のものに置き換えます。

gsu pexec authorities

パスワードプロンプトなしで実行する場合は、次を設定します。

  <allow_any>yes</allow_any>
  <allow_inactive>yes</allow_inactive>
  <allow_active>yes</allow_active>

個人的には、自分でパスワードを繰り返し入力するのは好きではありませんが、geditを使用してルートファイルを変更するときにパスワードを要求しないようにpkexecを変更しません。ただし、特定のセッションで何度も実行するときにパスワードを繰り返し要求しないようにしたいと思います。 Sudoでこれを行うことができ、システムで行ったように、期間を10分から120分に延長できます。ポリシーキットにも同様の機能が必要です。

2

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

PolicyKitがパスワードを要求しないようにするにはどうすればよいですか?

1
Elder Geek