web-dev-qa-db-ja.com

dnfインストールのアクセス許可に一貫性がありません

コマンドを実行するために必要なパッケージをシェルが「推測」するときに、なぜnotrootとしてインストールする必要があるのですか?

例えば:

(cseymour) : ~ $ dnf install rogue
Error: This command has to be run under the root user.
(cseymour) : ~ $ rogue
bash: rogue: command not found...
Install package 'rogue' to provide command 'rogue'? [N/y] y


 * Waiting in queue... 
The following packages have to be installed:
 rogue-5.4.5-19.fc24.x86_64 The original graphical adventure game
Proceed with changes? [N/y] y


 * Waiting in queue... 
 * Waiting for authentication... 
 * Waiting in queue... 
 * Downloading packages... 
 * Requesting data... 
 * Testing changes... 
 * Installing packages... 

など、rootパスワードを必要とせずにパッケージを正常にインストールします。

4
csey

小さなパッケージがあります PackageKit-command-not-found Fedoraにインストールされているため、これが発生します。ポリシーは/etc/PackageKit/CommandNotFound.confで構成されます。

認証は PolicyKit (D-bus経由)を使用して行われます。ここでは、PackageKitGUIを使用して新しいパッケージのインストールを既に許可しています。それぞれのファイルはusr/share/polkit-1/rules.d/org.freedesktop.packagekit.rulesであり、wheelグループのローカルログインユーザー用のパッケージをインストールできます。

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.packagekit.package-install" &&
        subject.active == true && subject.local == true &&
        subject.isInGroup("wheel")) {
            return polkit.Result.YES;
    }
});

この動作に満足できない場合は、いつでもこのパッケージ(dnf remove PackageKit-command-not-found)をアンインストールでき、パッケージは自動的にインストールされません。

2
Jakuje