it-swarm-eu.dev

Wie kann ich das Software Center so einrichten, dass Software für Benutzer ohne Rootberechtigung installiert wird?

Wie kann ich das Software Center so einrichten, dass Benutzer ohne Rootberechtigung Inhalte von Ubuntu-Repos installieren können, ohne dass sie ihr Kennwort eingeben müssen?

Ich bin mir der Auswirkungen auf die Sicherheit voll bewusst und bin bereit, das Risiko einzugehen. Fedora 12 wird mit so etwas ausgeliefert. (Durch Ändern der PolicyKit-Konfiguration, glaube ich)

47
snostorm

Sie können die PolicyKit-Berechtigungen ändern, um den Benutzern den Zugriff auf das von Software Center verwendete aptdaemon-Backend zu ermöglichen.

dpkg --listfiles aptdaemon zeigt, dass /usr/share/polkit-1/actions/org.debian.apt.policy die Datei ist, die die im aptdaemon-Backend möglichen Aktionen angibt.

In dieser Datei geben die Tags < action id=""> die möglichen Aktionen an. Sie möchten wahrscheinlich, dass org.debian.apt.install-packages Benutzern das Installieren neuer Pakete aus dem Archiv und org.debian.apt.update-cache Benutzern das Aktualisieren der Paketlisten ermöglicht.

Weitere Informationen zum Festlegen lokaler Berechtigungen für PolicyKit-Aktionen finden Sie unter man pklocalauthority. Wenn Sie das Folgende in /etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pkla einfügen, kann jeder am lokalen Computer angemeldete Benutzer Pakete installieren, nachdem er sein eigenes Kennwort eingegeben hat (auch wenn er nicht zur Administratorgruppe gehört), und den Paket-Cache aktualisieren, ohne ein Kennwort einzugeben.

[Untrusted Install]
Action=org.debian.apt.install-or-remove-packages
ResultyAny=no
ResultInactive=no
ResultActive=auth_self

[Untrusted Update]
Action=org.debian.apt.update-cache
ResultAny=no
ResultInactive=no
ResultActive=yes
36
RAOF

Ich glaube nicht, dass dies derzeit über die GUI möglich ist, aber das Folgende sollte funktionieren, wenn auch etwas klobig. YMMV.

Fügen Sie die folgende Zeile zu/etc/sudoers hinzu (verwenden Sie Sudo visudo, um die Datei zu bearbeiten):

%packageinstallers ALL = NOPASSWD: /usr/bin/software-center /usr/bin/apt-get

Dann müssen Sie nur die spezifischen Benutzer erstellen und zur Gruppe packageinstallers hinzufügen:

$ Sudo addgroup packageinstallers
$ Sudo adduser jdoe packageinstallers

Jetzt kann jdoe Folgendes tun:

$ Sudo apt-get install <some-package>

und Sie können das Desktop-Menüelement für das Software Center so bearbeiten, dass es software-center aufruft, wobei dem Befehl gksudo vorangestellt wird.

PolicyKit Sie können dies möglicherweise ohne Sudo tun, aber ich verstehe es derzeit nicht.

10
lfaraone

Wenn Sie nur eine allgemeine Berechtigung benötigen, um die Paketinstallation zuzulassen/zu verbieten, wählen Sie PolicyKit.

Leider hat PolicyKit keine genaue Kontrolle über das zu installierende Paket. Wenn Sie Ihren Benutzern die Erlaubnis geben möchten, nur einen eingeschränkten Satz von Anwendungen zu installieren, sollten Sie Sudo verwenden und so etwas wie Softwarechannels installieren ...

Ich habe auch nach so etwas gesucht, aber da ich nichts gefunden habe, habe ich diese einfache Lösung "softwarechannels" codiert, hier auf GitHub verfügbar

Es ist ein sehr einfaches System, mit dem normale Benutzer (ohne Administratorrechte) Pakete aus eingeschränkten Katalogen installieren können.

Definieren Sie einfach "Kanäle" (Gruppen von Paketen) in einer einfachen Textdatei und erteilen Sie Ihren Benutzern die Berechtigung, Software-Kanäle zu starten.

Sie sehen nur Pakete in Channels, die ihren Unix-Gruppen entsprechen.

5
Alfonso E.M.

Antwort von RAOF gilt nur für Ubuntu. Kubuntu verwendet QAptWorker als Backend (beobachtet für Natty und Oneiric). Erstellen Sie /etc/polkit-1/localauthority/50-local.d/10-allow-non-root-install-packages.pkla mit folgendem Inhalt, um Installationen ohne Rootberechtigung zuzulassen:

[Update Software Sources]
Action=org.kubuntu.qaptworker.updateCache
ResultAny=no
ResultInactive=no
ResultActive=yes

[Install Software]
Action=org.kubuntu.qaptworker.commitChanges
ResultAny=no
ResultInactive=no
ResultActive=auth_self

Ich wollte einigen Benutzern, die keine Administratoren sind, erlauben, Software zu installieren, ohne direkt auf Sudo zuzugreifen. Dies wurde erreicht, indem die nächsten Zeilen in beide Konfigurationsgruppen eingefügt wurden:

Identity=unix-user:some-non-admin-user

Wenn einer Gruppe eine Berechtigung erteilt werden muss, verwenden Sie unix-group anstelle von unix-user.

5
Lekensteyn