web-dev-qa-db-ja.com

polkitの非アクティブセッションアクション/ルールが有効になることはありません

非アクティブなセッションではpolkitがまったく機能しないという別の問題があります。私は彼らが同じ問題を共有していると思うので、最初に1つの例を投稿します。

Lubuntu-desktopおよびxrdpパッケージがインストールされた新しいubuntu-server 14.04があります。 xrdpでログインすると、polkitが定義されたため、通常の制限が適用されます。最初に、特定のアクションに対して十分な許可がないと思った。そのため、いくつかの構成をニーズに合わせて変更しました。次に例を示します。インストールする.debパッケージをダブルクリックすると、ソフトウェアセンターが開き、[インストール]をクリックします。

polkit error message

org.freedesktop.PolicyKit.Error.Failed:( 'system-bus-name'、{'name': ':1.121'}):org.debian.apt.install-file

(たとえば、このアクションを実行することは許可されていません。適切な権限を所有していません。)

その前に、非アクティブなセッションでこれを許可するようにpolkitを構成しました(ただし、理解するにはauth_adminで十分です)。 pkaction --verbose抽出:

org.debian.apt.install-file:
  description:       Install package file
  message:           To install this package, you need to authenticate.
  vendor:            Apt Daemon
  vendor_url:        http://launchpad.net/aptdaemon/
  icon:              package-x-generic
  implicit any:      auth_admin
  implicit inactive: auth_admin_keep
  implicit active:   auth_admin_keep

とにかく、xrdpでログインした直後に次のエラーが発生するため、polkit(agent?)はまったく実行されないと考えています。

polkit error message logged through xrdp

GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed:件名のユーザーを特定できません

彼は私をユーザーとして見つけられないと思いますか? xrdp-sessionでpolicykitエージェントが実行されているかどうかを確認するにはどうすればよいですか?手動で起動できますか?これはおそらくバグですか?

編集:はい、このユーザーはadminグループに属します。このユーザーは、ubuntuのインストール中に作成されました。また、Sudo権限もあります。

2
Dionysius
  • ユーザープロセスからユーザー名を取得していないようです。環境変数を確認してください。 xrdpは通常のセッションと異なる場合があります。

    env | grep -i "user\|logname"
    
  • Polkitエージェントが実行されているかどうかを確認するには、ターミナルを使用して次を実行します。

    ~$ ps aux | grep polkit
    root       855  0.0  0.9 281224  7192 ?        Sl   06:34   0:00 /usr/lib/policykit-1/polkitd --no-debug
    user      2060  0.0  1.5 331764 11604 ?        Sl   06:37   0:00 /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
    user      2419  0.0  0.1  15944   952 pts/12   S+   06:38   0:00 grep --color=auto polkit
    

    ルートで実行されているpolkitdと、セッションの同じユーザーでpolkit-*-authentication-agent-1の2つのプロセスが見つかります。

  • はい、手動でそれらをタルトできます。Ubuntuデスクトップがあるので、異なる場合があります。それがどこにあるかを取得します:

    ~$ ls /etc/xdg/autostart/polkit-*
    /etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop
    
    ~$ grep -i exec= /etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop
    Exec=/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
    

    それを実行します:

    /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
    
0
user.dz