Inkonsistente Berechtigungen für die DNF-Installation

632
csey

Warum muss ich nicht installieren, rootwenn die Shell das Paket "erraten" muss, um einen Befehl auszuführen?

Zum Beispiel:

(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...  

und so weiter, das Paket erfolgreich installieren, ohne dass das root-Passwort erforderlich ist.

2

1 Antwort auf die Frage

0
Jakuje

In Fedora ist ein kleines Paket PackageKit-command-not-found installiert, das dies ermöglicht. Die Richtlinie ist in konfiguriert /etc/PackageKit/CommandNotFound.conf.

Die Authentifizierung erfolgt mit PolicyKit (über D-Bus), wo Sie bereits die Installation eines neuen Pakets mithilfe der PackageKit-GUI gewährt haben. Die entsprechende Datei usr/share/polkit-1/rules.d/org.freedesktop.packagekit.ruleserlaubt die Installation von Paketen für lokal angemeldete Benutzer in einer wheelGruppe:

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; } }); 

Wenn Sie mit diesem Verhalten nicht zufrieden sind, können Sie dieses Paket ( dnf remove PackageKit-command-not-found) jederzeit deinstallieren. Die Pakete werden nicht automatisch installiert.

Vielen Dank! Wenn diese Option standardmäßig installiert ist, warum verwendet dnf eine Kennwortabfrage anstelle von etwas Ähnlichem? Sind diese unterschiedlichen Verhaltensweisen absichtlich? csey vor 8 Jahren 0
Da `dnf` nicht` PackageKit` ist und die obige Regel nur für PackageKit gilt. DNF ist ein Standard-Befehlszeilentool, das Root-Berechtigungen benötigt. PackageKit verwendet jedoch die Authentifizierung über D-Bus und ein Backend, das bereits als Root ausgeführt wird. Jakuje vor 8 Jahren 0
@csey Ich stimme zu, dass es inkonsistent ist. Sie können Software auch ohne Kennwort mithilfe des GNOME-Software-GUI-Tools installieren. Ich denke, es ist meistens nur so, dass das Verhalten, für das wir uns entschieden haben, für Befehle nicht gefunden und GUI-Installationen in Ordnung ist, Pakete aus bereits konfigurierten Repos zu installieren. Da Fedora im Allgemeinen die Aktivierung von Diensten bei der Installation umgeht, ist das Risiko relativ gering. Auf der anderen Seite kann DNF viele andere Dinge tun, von denen viele gefährlich sind. mattdm vor 8 Jahren 1
@mattdm Danke für den Zusatz und Hintergrund, den ich vermisst habe (noch immer nur wenige Jahre um Fedora herum). Ich werde es der Antwort hinzufügen oder Sie können es bearbeiten, da es auch für andere interessant sein kann. Jakuje vor 8 Jahren 0