コマンドを実行するために必要なパッケージをシェルが「推測」するときに、なぜ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パスワードを必要とせずにパッケージを正常にインストールします。
小さなパッケージがあります 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
)をアンインストールでき、パッケージは自動的にインストールされません。