Aktivieren von Systemverwaltungsberechtigungen für nicht lokale Benutzer - Wie zum Teufel funktioniert "Polkit" überhaupt?

7

Ich verwalte einen CentOS 6.2-Server remote mit X über SSH (eigentlich NX, aber das ist nur ein Proxy).

Alles funktioniert ordnungsgemäß, außer wenn ich versuche, Aufgaben auszuführen, für die normalerweise Administratorrechte erforderlich sind (z. B. Dinge in palimpsestoder andere GUI-Tools).

Wenn ich versuche, Dinge zu tun, die einen Authentifizierungsdialog (durch polkit-gnome) auslösen würden, schlägt der Berechtigungsdialog stillschweigend fehl, und die Software wird als mein Benutzerkonto und nicht als root ausgeführt.

Wenn ich die Paketeinstellungen mithilfe des Paketmanagers an der lokalen Konsole ändere, wird zur Verdeutlichung ein Popup angezeigt: "Zum (Hinzufügen / Entfernen) von Paketen ist eine Authentifizierung erforderlich."

Wenn ich dies remote mache, schlägt die Authentifizierung fehl und ich erhalte das Dialogfeld "Autorisierung fehlgeschlagen".

Es scheint sich auf die Policykit-Konfiguration zu beschränken, aber ich habe die Polkit-Manpages befolgt und meine Konfiguration bearbeitet, und es hat sich nichts geändert.


Ich kann Pakete / Super-User-Sachen ohne Probleme über die Kommandozeile verwalten. Ich bin jedoch sehr visuell orientiert und bevorzuge nach Möglichkeit eine grafische Benutzeroberfläche.


Ok, es scheint also, dass ich dem Policykit eine neue Regel hinzufügen muss.

Ich verließ die Manpages, erstellte eine Datei (mit dem Namen 20-remote-admin-allow.pkla) und legte sie dort ab /etc/polkit-1/localauthority/50-local.d/. Da es anscheinend mehrere Polkit-Konfigurationsverzeichnisse gibt, habe ich dieselbe Datei in kopiert /var/lib/polkit-1/localauthority/50-local.d/.

Es scheint nichts geändert zu haben.

Hier ist meine Konfigurationsdatei, wie oben erwähnt:

[root@cloaica zul]# cat /var/lib/polkit-1/localauthority/50-local.d/10-remote-admin-allow.pkla 
[Let remote users do admin stuff]
Identity=unix-user:zul
Action=*
ResultAny=auth_admin
ResultInactive=auth_admin
ResultActive=auth_self_keep

[root@cloaica zul]# cat /etc/polkit-1/localauthority/50-local.d/20-remote-admin-allow.pkla 
[Allow Remote Administraton]
Identity=unix-user:zul
Action=*
ResultAny=auth_admin
ResultInactive=auth_admin
ResultActive=auth_admin
[root@cloaica zul]# 

pkaction --verbose berichtet immer noch

implicit any:      no
implicit inactive: no

Für die meisten Aktionen und die genannten Aktionen schlagen fehl, wenn ich sie versuche, mit dem oben erwähnten Dialogfeld "Authentifizierung fehlgeschlagen".

Im Ernst, verstehe jemand wirklich, wie Polkit tatsächlich funktioniert?

Policykit scheint ein Albtraum zu sein, und da es früher ein GUI-Konfigurationstool gab und es entfernt wurde , verstehe ich nicht, wie jemand dachte, dass dies für die Veröffentlichung in einem Produktionsbetriebssystem bereit ist.


Um es klar auszudrücken, ich möchte die Dialogfelder "Bitte authentifizieren, um diese Aktion auszuführen". Ich möchte sie nur tatsächlich haben , anstatt das System stillschweigend nicht authentifizieren zu lassen.

Ich möchte nicht das gesamte Polkit entfernen, sondern nur annehmen, dass alle Sitzungen aktiv sind oder dass inaktive Sitzungen dieselben Berechtigungen wie aktive Sitzungen erhalten.

Falscher Name
quelle
Ich habe keine Erfahrung mit CentOS, aber es scheint ein PolicyKit-Problem zu sein. Die Standardkonfiguration für Debian und Ubuntu gewährt einem nicht lokalen Benutzer keine Berechtigung.
Enzotib
@enzotib - Ich würde vermuten, dass es so etwas ist. Wo ist nun die Einstellung, die diese Berechtigungen steuert?
Gefälschter Name
Sie sind in /etc/polkit-1und /var/lib/polkit-1. Siehe auch pkaction --verboseAusgabe und pklocalauthorityManpage.
Enzotib
@enzotib - Ich habe das getan, siehe aktualisierte Frage. Es hat nicht geholfen.
Gefälschter Name
Einige Anmerkungen: 1) Die Datei muss eine .pklaErweiterung haben. 2) es sollte geben Identityund nicht AdminIdentities; 3) pkactiongibt Informationen für registrierte Aktionen zurück (gefunden in /usr/share/polkit-1/actions/*) und zeigt keine lokalen Änderungen an, daher ist es besser, es zu versuchen, als daran zu glauben pkaction.
Enzotib

Antworten:

1

Ich kann nicht mit Sicherheit sagen, dass Sie genau das gleiche Problem haben, aber dies ist ab November 2011 als Fedora- Fehler aufgeführt . Ich habe ein sauberes CentOS 6 installiert, alle Pakete aktualisiert und hatte dann das gleiche Problem beim Versuch, remote darauf zuzugreifen und fügen Sie ein neues Paket hinzu (etwas, das auth erfordert).

bsd
quelle
0

Probier diese:

[Remote Admin SSH access] 
Identity=unix-group:users
Action=*
ResultAny=yes
ResultInactive=yes
ResultActive=yes

Fügen Sie danach den Benutzer zur Benutzergruppe hinzu. Sehen Sie Sicherheitsprobleme mit dieser Konfiguration?

Antennagora
quelle
0

Hallo, ich habe auch Probleme damit. Speziell mit udisk.

(Ich verwende Ubuntu Desktop 14.04)

Um udisks zu reparieren, habe ich das getan.

  1. Sichern und bearbeiten

    sudo vi /usr/share/polkit-1/actions/org.freedesktop.udisks.policy

  2. Suche nach allen:

    <allow_active>yes</allow_active>

    und ändern Sie dann die:

    <allow_any>no</allow_any>

zu:

   `<allow_any>yes</allow_any>`

Dies ermöglicht den Fernzugriff und nicht nur den lokalen Zugriff

SpiRail
quelle
0

Ich fand das Laufen:

 /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &

Als erstes in meiner SSH-Sitzung kann ich das normale Auth-Popup abrufen, als wäre ich lokal.

Damit kann ich Gnome-Disks oder jedes andere Gnome-Dienstprogramm ausführen, das auth_admin benötigt.

Diese Binärdatei stammt aus dem policykit-1-gnomePaket.

SolarKennedy
quelle