最小限のデスクトップでLubuntu 12.04の新規インストールを実行しました ここで説明したとおり 。
明確にするために、Lubuntuの代替インストールディスクからコマンドラインインストールを実行し、apt-get install --no-install-recommends lubuntu-desktop
を実行しました。
Synapticがパネルのメニューエントリから実行されないことを除いて、すべてが正常に機能しています。パスワードの入力を求められず、メニューエントリをクリックしてもウィンドウが表示されません。ショートカットの実行内容を確認するためにlxshortcutをインストールしましたが、コマンドはsynaptic-pkexec
です。このコマンドを「実行」メニューに入力すると、同じ動作(またはその欠如)が発生します。
[実行]メニューでgksudo synaptic
と入力すると、Synapticを正常に開くことができます。また、ターミナルから「synaptic-pkexec」を実行すると、ターミナル内でパスワードの入力を求められ、その後Synapticが正常に開きます。
誰かがSynapticを動作させるための正しい方法を提案してもらえますか?メニューエントリを「gksudo synaptic」に変更することはできますが、理由はsynaptic-pkexec
に設定されていると推測しています。私はこのpkexec
ビジネスがPolicyKitと関係があることを漠然と理解していますが、PolicyKitが何であるか、または何かが壊れているかどうかをどのように知るかはわかりません。
policykit-1-gnome
パッケージをインストールする必要があることがわかりました。このパッケージをインストールして再起動すると、Synapticは正常に機能しました。
完全なLubuntuデスクトップをVMにインストールして、最小インストールと比較しました。これが、欠落しているものを発見した方法です。パッケージの説明によると:
PolicyKit-gnomeは、特権の取得に使用される認証ダイアログを表示するために使用されるD-Busセッションバスサービスを提供します。
明らかに、説明されている機能がなければ、Synapticを開くためのGUI認証プロンプトが表示されることはありませんでした。
synaptic
はlubuntu-desktop
メタパッケージの依存関係であるため、最小インストールではデフォルトでインストールされました。 Synapticはそれなしでは動作しないため、policykit-1-gnome
もlubuntu-desktop
の依存関係であってはなりませんか?バグを報告すべきだと思いますか?
私は受け入れられた答えの代替ソリューションを使用しています。 LXDE用に設計されているため、policykit-1-gnome
ではなくlxpolkit
を使用することを好みます。
pkexec
認証画面を起動しないというこの問題は非常に一般的です。最初に確認することは、グラフィカルポリシーキットインターフェイス(lxpolkit
またはpolicykit-1-gnome
のいずれか)がインストールされ、LXDE用に設定されているかどうかです。これらのパッケージはlubuntuのメジャーアップグレード中に削除フラグが付けられているためです。どうやら、ディストリビューションのインストール時にどちらも含まれていないようです。
lxpolkit
をインストールします。Sudo apt-get install lxpolkit
ログアウトとログイン。
lxpolkit
をデフォルトのポリシーエージェントとして設定します
メニューで、Preferences > Default applications for LXSession
に移動します(または、ターミナルでlxsession-default-apps
を実行します)。最初のセクション「アプリケーションの実行」(更新:デフォルトのアプリマネージャー14.10は異なります。Core applications
タブを使用します。)、Polkit agent
のオプションに移動し、 lxpolkitが選択されていることを確認してください。
パッケージpolicykit-1-gnome
を使用する代わりに、lxsession
はLXDEにlxpolkit
を使用するようになりました。
pkexec
で起動した理由LXDEメニューから実行しないでくださいX11システムのアプリがpkexecで起動される方法に帰着します。
Lxpanelメニューに表示されるアプリは、/usr/share/applications
(グローバルメニュー項目)または~/.local/share/applications
(ユーザー固有)のいずれかに保存および構成されます。 LXDE Wiki-メインメニュー を参照してください
これらのディレクトリには、メニューに表示される各アプリケーションの.desktopファイルがあります。 /usr/share/applications/synaptic.desktop
の例を次に示します。
[Desktop Entry]
Name=Synaptic Package Manager
GenericName=Package Manager
Comment=Install, remove and upgrade software packages
Exec=synaptic-pkexec
Icon=synaptic
Terminal=false
Type=Application
Categories=PackageManager;GTK;System;Settings;
NotShowIn=KDE;
X-Ubuntu-Gettext-Domain=synaptic
行Exec=synaptic-pkexec
に注意してください。
ポリシーキットインターフェイスがない場合、ユーザーは通常、コマンドラインでパスワードを要求されます。これはメニュー項目であるため、バックグラウンドで起動され、パスワードを入力するコマンドラインはありません。したがって、lxpolkit
を使用していることを確認する必要があります。または、gnome polkitを使用する場合は、pkexec
が使用されるたびにログインメニューを起動するパッケージpolicykit-1-gnome
をインストールします。パッケージpolicykit-1-gnome
を削除しました。lxpolkit
を使用すると、すべてのアプリケーションでうまく機能します。
pkexecの代わりにgksudoを使用
メニューでsynapticなどのアプリケーションを右クリックし、[プロパティ]をクリックして、[コマンド]フィールドをsynaptic-pkexec
からgksudo synaptic
に変更できます。または、コマンドラインで、Sudo cp /usr/share/applications/synaptic.desktop ${HOME}/.local/share/applications/synaptic.desktop
を使用して元のファイルをユーザーのアプリケーションディレクトリにコピーします
次に、行Exec=synaptic-pkexec
を編集して、Exec=gksudo synaptic
に置き換えます
gksudoの「主な目的は、X端末エミュレータを実行し、suを直接使用することなく、rootを必要とするグラフィカルコマンドを実行することです。」 - GKSU(1)
そして正当な理由で! Sudoのグラフィカルな実行 を参照してください。
もちろん、これには、pkexecに依存するすべてのアプリケーションを編集してgksudoで起動する必要があり、lxpanelを使用している場合は、より多くの作業が必要になります。 gksudoとPolicyKitのセキュリティ機能とユーザビリティ機能の素晴らしい比較は、 特権認証機能の比較 にあります。
個々のアプリケーションに独自のpkexec
ポリシーを書く
これは私がやりたいこと以上ですが、状況によっては役に立つかもしれません。 PolicyKit Actionsの記述 を十分に理解せずにこれを行うことはお勧めしません。
Polkitを介して利用できるアクションは、インストールしたパッケージによって異なります。複数のデスクトップ環境で使用されるもの(org.freedesktop。)、DE固有のもの(org.gnome。)、および単一のプログラムに固有のもの(org.archlinux。 pkexec.gparted.policy)。コマンドpkactionは、クイックリファレンスのために/ usr/share/polkit-1/actionsで定義されているすべてのアクションをリストします。
City-busz -'gksu 'の代わりに' pkexec 'コマンドを使用 からの例は、テストしていません。
例えば。ルートとしてgpartedを実行したい場合
$ pkexec gparted
コマンド、次に新しいファイルを作成
/usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy
次のコンテンツ:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd"> <policyconfig> <action id="org.freedesktop.policykit.pkexec.run-gparted"> <description>Run GParted</description> <message>Authentication is required to run GParted</message> <defaults> <allow_any>no</allow_any> <allow_inactive>no</allow_inactive> <allow_active>auth_admin_keep</allow_active> </defaults> <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/gparted</annotate> <annotate key="org.freedesktop.policykit.exec.allow_gui">TRUE</annotate> </action> </policyconfig>
同じファイルにさらにアクションを追加できます。
archlinux.orgのrenegat に関連するLXDEおよびPolicyKitのドキュメントからの関連する抜粋をコンパイルして、最終的にLXPolkitを優先ソリューションとして使用するようになったというヒント。
提案を使用して、[システムツール]の下のメニューのシナプスエントリを右クリックし、[プロパティ]、[デスクトップエントリ]タブの順に選択し、synaptic-pkexecをgksudo synapticに変更します。
それはうまくいきませんでしたので、シナプス(gksudoシナプス)を実行しているターミナル経由で調査しました。
私にとっては、gksudoを使用しようとすると、gksuのインストール方法を示すメッセージが表示されました。インストールしようとすると、gksuがすでにインストールされているというメッセージが表示されました(まだ動作しませんでした)。 gksuをアンインストールして再インストールすると、シナプスは正常に動作します。