Polkit-Agent oder Secret-Agent: Welcher Dialog fehlt?
Ein Dialog fragt nach lokaler Berechtigung, der andere nach einem Geheimnis. Stellen Sie fest, welcher Agent fehlt, und reparieren Sie dann die Sitzung, statt die Richtlinie zu lockern.
Lesen Sie den Dialogtext, bevor Sie irgendeine Konfiguration anfassen. Ein Dialog fragt nach der Berechtigung, das Netzwerk der Maschine zu ändern; der andere fragt nach dem Geheimnis, das eine Verbindung braucht. Sie stammen aus verschiedenen Komponenten, scheitern aus verschiedenen Gründen, und die Reparatur des einen behebt nie das andere. Die Meldung benennt, mit welchem Sie es zu tun haben.
Beginnen Sie bei diesem Namen und nicht beim VPN, das nur der Grund ist, aus dem der Vorgang angefordert wurde.
Welcher Dialog fehlt Ihnen eigentlich?
Ein Dialog für lokale Berechtigung bedeutet, dass der Desktop fragt, ob dieser Benutzer einen privilegierten Vorgang ausführen darf. Ein Geheimnisdialog bedeutet, dass der Verbindungsspeicher ein Passwort, eine Schlüsselpassphrase oder ein Token braucht, bevor der Tunnel aufgebaut werden kann. Der erste wird von einem Authentifizierungsagenten in Ihrer Sitzung beantwortet, der zweite von einem Secret-Agent, den der Netzwerkverwaltungsdienst erreichen kann. Wenn die Meldung sagt, es wurde kein Authentifizierungsagent gefunden, wurde noch kein VPN-Passwort angefordert.
Diese Reihenfolge zählt, wenn Sie das Problem melden. Der Startkontext, der angeforderte lokale Vorgang, das Autorisierungsergebnis und jeder spätere Verbindungsfehler sind vier getrennte Fakten, und sie zusammenzuziehen ergibt einen Bericht, mit dem niemand etwas anfangen kann.
Der Polkit-Agent lebt in Ihrer Sitzung
Polkit hält einen privilegierten Systemvorgang getrennt von dem gewöhnlichen Programm, das ihn anfordert, und ein Agent in der Sitzung des Benutzers stellt diese Interaktion her. Ein schlanker Desktop, ein aus einem nackten Terminal gestarteter Starter oder eine Sitzung, die ihren Agenten verloren hat, können diese Interaktion unerreichbar lassen. Prüfen Sie, wie die Anwendung gestartet wurde, bevor Sie annehmen, die Richtlinie sei falsch. Eine reine Text-Sitzung braucht ihren eigenen unterstützten Agenten, keinen grafischen, der von einer anderen Anmeldung geliehen ist.
Sitzungsbus-Adressen oder Display-Variablen aus der Umgebung eines anderen Benutzers zu kopieren ist kein Autorisierungsplan. Es erzeugt eine Sitzung, die verbunden aussieht und den Dialog trotzdem nicht korrekt beantworten kann.
Der Secret-Agent liefert etwas anderes
Der Netzwerkverwaltungsdienst fragt einen Secret-Agent nach Anmeldedaten, die er nicht selbst speichert, und der Agent zeigt diese Anfrage dem Benutzer. Ein Kommandozeilen-Client mit eigenem interaktivem Dialog ist ein solcher Agent; eine Desktop-Shell stellt normalerweise einen anderen bereit. Ein Geheimnis verfügbar zu machen verleiht keine Berechtigung, das Systemnetzwerk zu ändern, und die lokale Autorisierung zu reparieren erzeugt keine fehlenden Anmeldedaten. Ein Arbeitsablauf kann beide Antworten brauchen, und zwar immer in dieser Reihenfolge.
Wenn der Geheimnisdialog nie erscheint, schauen Sie, welchen Agenten der Dienst erreichen kann, und nicht auf die Polkit-Richtlinie.
Reparieren Sie die Sitzung, nicht die Privilegiestufe
Nutzen Sie den unterstützten Agenten des Desktops und die Startintegration, statt die gesamte VPN-Oberfläche als root laufen zu lassen. Jedem Benutzer uneingeschränkte Netzwerkverwaltung zu geben oder den Autorisierungsdienst abzuschalten tauscht einen fehlenden Dialog gegen ein dauerhaftes Loch. Auf verwalteten Geräten kann der Administrator bewusst einen freigegebenen Bediener verlangen, und die richtige Lösung ist, innerhalb dieser Entscheidung zu arbeiten. Sehen Sie in der Ansicht der unterstützten Berechtigungen nach, was der aktuelle Benutzer anfordern darf.
Falten Sie die lokale Antwort nicht in das Authentifizierungsergebnis des Gateways; es sind zwei Ereignisse. Auch ein interaktiver Geheimnisdialog in einem Terminal befreit niemanden von der Autorisierungsrichtlinie, so bequem er sich anfühlt.
Halten Sie fest, welcher Agent geantwortet hat, in welcher Sitzung, und was als Nächstes geschah.