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


18

virt-managerを起動すると、rootパスワードの入力を求められます。

virt-managerがlibvirtdデーモンにいくつかの引数を指定してpkcheckを実行させると、この認証ダイアログが表示されるようです。したがって、rootパスワードを要求するのはPolicyKitです。

公式Webサイト(libvirt.org)では、パスワードプロンプトを取り除くためのPolicyKitルールを定義する方法について説明しています。

$ sudo cat /etc/polkit-1/localauthority/50-local.d/50-org.example-libvirt-remote-access.pkla
[libvirt Management Access]
Identity=unix-group:libvirt
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes

サブディレクトリ「localauthority」は存在しませんでした。それを作成して、その名前とコンテンツ(libvirt->私のグループ名)のファイルをそこに置いても効果はないようです。また、JavaScript構文を使用するデフォルトファイルがあります。

/etc/polkit-1/rules.d/50-default.rules

このパッケージはシステムにインストールされ、さらにいくつかのDEフロントエンドがインストールされます。

polkit-0.107-4.fc18.x86_64

どうやらlibvirt.orgの設定例は古くなっていますか?

(特定のユーザーグループの)パスワードプロンプトを削除するには、どのような構成が必要ですか?

回答:


16

/etc/polkit-1/rules.d/10.virt.rules:

polkit.addRule(function(action, subject) {
    if (action.id == "org.libvirt.unix.manage"
            && subject.local
            && subject.active
            && subject.isInGroup("libvirt")) {
        return polkit.Result.YES;
    }
});

ポリシーキットを再起動したり、libvirtグループに追加した後にそれぞれのユーザーと新しいセッションを開始するなど、一般的な手順を実行する必要があります。

リソースはFedora 18についてのものであるように見えますが、すでにjavascript構文を使用しているため、おそらくFedora 19でも有効です。

リンク:


1
このソリューションは機能します!リンクもありがとう。バウンティが授与されました。
セノスマイル

間違ったフォーマットで申し訳ありませんが、それを修正しました。
パベルシメルダ

これは、ユーザーをlibvirtグループに追加するのと比較してどうですか?libvirtグループへのユーザーの追加をテストしましたが、追加の認証は必要ありませんでした。
jwbensley

1
@jwbensley polkitの方法は動的であり、アクティブなローカルセッションの所有者に許可を与えます。グループの方法は静的であり、その特定のユーザーに特権を与えます。適切な方法を選択してください。
パベルシメルダ

1

パスワードのプロンプトはシステムのセキュリティのために作成されたため、これを行うと脆弱になる可能性があります。

  1. Groupマシンでグループを作成します。または、この「sudo groupadd -r Group」を実行できます

  2. "sudo usermod -a -G Group User"を実行することにより、このシステムグループに任意のユーザーを指定できます。

  3. 次に、ユーザーがGroupvirt-managerを実行できるようにするPolicyKitポリシーを作成する必要があります

"/ etc / polkit-1 / localauthority / 50-local.d / 50-ORG。:あなたは、このパスにファイルを作成しますGroup-libvirt-ローカルaccess.pkla"
と、あなたはそれに下の行を配置します

[グループGrouplibvirt管理権限を許可]
Identity = unix-group:Group
Action = org.libvirt.unix.manage
ResultAny = yes
ResultInactive = yes
ResultActive = yes

これで実行する必要があるのはこれだけです。そして、これがあなたのお役に立てば幸いです。


これは古いソリューションです。このソリューションは、Fedora 19やCurrent Archなどの新しいsystemdベースのLinuxオペレーティングシステムでは機能しません。(私はそれをテストしました。localauthorityディレクトリさえ存在せず、サブフォルダと指定されたファイルを作成しても何もしません)。
セノスマイル

@senorsmile Fedora 19でバグレポートを提出しましたか?
パベルシメルダ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.