Wenn das Gerät kopflos ist, ist der Benutzer nicht mehr berechtigt


12

Die Kernfrage ist: ANY gnome - Sitzung nicht sitzt ontop einer realen physikalischen / native Anzeige --oder dass Anzeige Shadowing (. Dh nxserver Schatten - Modus) - hat fehlerhafte Berechtigungen. Auch wenn als root ausgeführt!

Gibt es Kommentare zu einer Möglichkeit, das problematische Verhalten für die VNC- / Nicht-Schatten-NX-Sitzungen zu beheben?


Ich aktualisiere meinen Ubuntu Headless-Heimserver nach einer langen Zeit und habe viele Probleme, an die ich mich in früheren Ubuntu-Versionen nicht mehr erinnere.

Ein paar Details:

  • Ich habe mit ubuntu-11.04-server-amd64.iso begonnen und dann ubuntu-desktop darauf installiert.
  • uname -a: Linux MiddleEarth 2.6.38-8-server # 42-Ubuntu SMP Mo 11. April 03:49:04 UTC 2011 x86_64 x86_64 x86_64 GNU / Linux
  • Die Hardware ist Intel D920, 2 GB RAM, GFX ist einige lüfterlose NVIDIA 6600, 3xGigabit, 1x100 MBit, kein Monitor, Tastatur, Maus angeschlossen.

Runde 1

Während ich das Testen / Einrichten mit angeschlossenem Monitor durchführte , war alles in Ordnung, sowohl wenn ich vor diesem Monitor saß, als auch wenn ich von meinem Desktop-Computer aus VNC einspielte (in Vino).

Ohne Monitor treten jedoch folgende Probleme auf:

[Ungelöst / fallen gelassen]

Das allererste Problem war, dass Vino hartnäckig war und nicht gerne vor / während GDM geladen wurde. Da es sich jedoch um ein Headless-System handelt, brauche ich es eigentlich nicht, um standardmäßig mit X zu beginnen (dh die Init-Stufe zu ändern). Ich erinnere mich jedoch deutlich daran, dass dies in einer älteren Ubuntu-Version (v9.04, glaube ich) sehr einfach ist . Und es hat gut funktioniert; aber nicht mehr!? ... sowieso habe ich diese Idee ganz fallen gelassen.

[Gelöst]

Dann war es Unity / Effects Messing VNC (Gelöst durch Schummeln ).

[Ungelöst]

Ich bin ursprünglich zu NXserver gewechselt in der Hoffnung, dass die folgenden Probleme möglicherweise Probleme mit tightvnc oder vino sind, aber kein solches Glück. (Hinweis: lesen Sie Runde 2)

Bei einem Remotezugriff über VNC (oder NXserver) kann mein Benutzerkonto keine Festplatten mehr aktivieren / deaktivieren.

Screenshot: Mounten von 750GB_RAID1 nicht möglich

Bei einem Remotezugriff über VNC (oder NXserver) kann mein Benutzerkonto nicht auf einige privilegierte Konfigurationsoptionen zugreifen,
einige Beispiele:

  • kann unter "System -> Administration -> Benutzer und Gruppen" nichts tun (dh einen Benutzer oder erweiterte Einstellungen hinzufügen).
  • kann 'entsperren' in "System -> Administration -> Anmeldebildschirm" nicht verwenden.
  • gparted kann keine Informationen zu den Dateisystemen abrufen.
  • etc. (diverse andere Admin / Config-Dialoge funktionieren auch nicht richtig)

Ich kann nur vermuten, dass dies damit zu tun hat, dass Benutzerrechte nicht richtig zugewiesen werden, wenn kein tatsächliches physisches Monitorgerät angeschlossen ist.
Der Grund, warum dies in Ubuntu 11.04 passiert, wenn es kopflos ist, entgeht mir. Ich erinnere mich nicht an dieses Verhalten in früheren Ubuntu-Versionen.

Beachten Sie, dass das Problem beim Einhängen der Festplatte für interne / statische Festplatten kein Problem ist (ich füge sie einfach zu fstab hinzu, da sie sowieso statisch sind). Aber wirklich ein großer Schmerz für austauschbare USB-Medien.

Der Rest der Probleme, ich habe nicht herausgefunden, wie man es behebt ...
Ich weiß, was Sie denken ... Melden Sie sich bei ssh, sudo su an und führen Sie vncserver vollständig unter root aus?

Screenshot: (als root) gparted findet fs info nicht

Überraschung Überraschung! Die Benutzeroberfläche von root ist ebenfalls fehlerhaft: gparted kann keine Informationen abrufen, Benutzer und Gruppen sind vollständig ausgegraut (dies ist ein anderes Verhalten als bei meinem normalen Benutzer). Seltsamerweise scheint das Anmeldebildschirm-Verwaltungsprogramm gut zu funktionieren.


Runde 2

(HINWEIS: Ich weiß nicht, ob dies das Ergebnis beeinflusst hat oder nicht. Irgendwann zwischen Runde 1 und Runde 2 habe ich die in den Beiträgen 21 und 24 in diesem Thread genannten Änderungen vorgenommen. )

Die regulären tightvnc / NXServer-Sitzungen haben das gleiche Verhalten, ABER ...

[Teillösung / Das eigentliche Problem ist noch da]

In den Verbindungseinstellungen von NXClient, wenn ich den 'Schatten'-Modus wähle (Schatten hängt Sie an die native Anzeige an, dh Desktop-Schatten) ...

Alles funktioniert perfekt in dieser Sitzung!

Eine Sache, die mir aufgefallen ist, ist, dass ich sofort nach einem Passwort für den Schlüsselbund gefragt werde.

Wenn ich mich jedoch mit einer regulären (nicht Schatten-) NX-Verbindung oder einer regulären VNC verbinde, treten wieder dieselben Probleme auf.

PS Es gab ein paar Tage dazwischen, als ich round1 und round2 schrieb (ich habe es lokal in einer txt-Datei gespeichert). Ich habe verschiedene Vorschläge getestet, um herauszufinden, was funktionieren würde. Aus diesem Grund weiß ich nicht genau, ob diese xorg.conf-VNC-Gerätebearbeitung oder diese Nomodeset-Einstellung einen Unterschied ausmachen.

[EDIT 10.06.2011]

NXServer und GDM

Zum Zeitpunkt des Schreibens hatte ich das System auf Auto-Login eingestellt, weshalb die Shadow-Verbindung einfach funktionierte. Als ich das später deaktivierte und das System neu startete, gab NX einen Fehler aus, aber mit ein bisschen Googeln fand ich diesen Thread

Dies sind die Kommentare und Änderungen, die ich in meiner Datei /usr/NX/etc/server.cfg vorgenommen habe:

EnableAdministratorLogin = "1"
EnableSessionShadowing = "1"
EnableInteractiveSessionShadowing = "1"
EnableSessionShadowingAuthorization = "0"
EnableDesktopSharing = "1"
EnableInteractiveDesktopSharing = "1"
EnableFullDesktopSharing = "1"
EnableAdministratorDesktopSharing = "1"
EnableDesktopSharingAuthorization = "0"
EnableSystemDesktopSharingAuthorization = "0"

(Wenn es ein öffentlicheres Netzwerk wäre, z. B. Universität / großes Büro, würde ich wahrscheinlich etwas strengere Einstellungen verwenden, aber diese passen zu mir.)

Nach einem Neustart loggte ich mich mit nxclient in die Desktop-Einstellung 'shadow' (native Anzeige) ein und bekam GDM! : D

Leider funktioniert die Zwischenablage in der "Schatten" -Sitzung nicht (es funktioniert in der anderen / regulären Sitzung gut)

[EDIT 2011-06-11]
Stolperte über Xvfb, aber es hat die gleichen Probleme, wenn es wie folgt verwendet wird:

Xvfb :2 -ac -screen 0 1280x1024x32 -pixdepths 8 24  2>&1 >/dev/null &
export DISPLAY=:2
gnome-session --session=2d-gnome 2>&1 >/dev/null &
x11vnc --display :2 --passwd blahblah

Antworten:


5

Ich habe den Täter ausfindig gemacht.
Wurde bei einer Neuinstallation getestet und bestätigt, dass es sich um einen Fehler handelt.

Ich habe einen Fehlerbericht eingereicht

Kurz gesagt lautet das Problem: Der Polkit-Authentifizierungsdialog wird auf DISPLAY: 0 anstelle von DISPLAY: 1 angezeigt, in dem sich die VNC / NX-Sitzung befindet.

Eine Problemumgehung kann darin bestehen, libpam-keyring zu verwenden, um sich beim Anmelden automatisch zu authentifizieren.
oder ... Scratchen Sie das, das würde es wahrscheinlich nicht tun, eine Änderung aller Policy-Kit-Einstellungen von 'auth_admin' auf nur 'yes' würde das Problem wahrscheinlich beheben, und das würde policyKit natürlich insgesamt zur Diskussion bringen ... seufzen


1
Können Sie Ihre Xorg.conf ändern, um die Anzeige zu entfernen: 0. Ich sehe keinen Grund für X, überhaupt dort zu rennen. Auf diese Weise kann VNC / NX DISPLAY: 0?
user606723

2

Ich denke, das ist das richtige PolicyKit-Verhalten.

Die Richtlinien für aktive , inaktive und alle anderen Benutzer sind unterschiedlich. Wenn Sie also über NX verbunden sind, sind Sie weder aktiv (Clients in aktiven Sitzungen auf lokalen Konsolen) noch inaktiv (Clients in inaktiven Sitzungen auf lokalen Konsolen), sondern führen zu Beliebiger Benutzer.

Sie können die Standardrichtlinie für die Aktion unter Richtliniensteuerung für die verschiedenen Benutzertypen mit dem Befehl anzeigen

pkaction --verbose

Wie Sie sehen, ist der Benutzer vom Typ "Beliebig" im Vergleich zu "Aktive Benutzer" eingeschränkt.

Um Abhilfe zu schaffen, können Sie die Standardrichtlinie ändern. Im Folgenden wird ein awk-Skript zum Erstellen einer Policy Kit-Datei vorgeschlagen, die an der richtigen Stelle abgelegt werden soll. Dies ist das Skript:

#!/usr/bin/awk -f

/^[^ ]/ {
  action = substr($0, 1, length($0) - 1)
}
/^ / {
  if ($1 == "description:") {
    $1 = ""
    description = substr($0, 2)
    if (description == "")
      description = action
  } else if ($1 == "implicit") {
    if ($2 == "any:")
      any = $3
    else if ($2 == "inactive:")
      inactive = $3
    else if ($2 == "active:") {
      active = $3
      print ""
      print "[" description "]"
      print "Identity=unix-group:admin"
      print "Action=" action
      print "ResultActive="   active
      print "ResultInactive=" active
      print "ResultAny="      active
    }
  }
}

Angenommen, Sie nennen es create-policy. Mach es ausführbar, das führe das Skript mit aus

pkaction --verbose | ./create-policy > local.pkla 

Verschieben Sie dann die resultierende Datei:

sudo mv local.pkla /var/lib/polkit-1/localauthority/50-local.d/

Sie sollten jetzt das gleiche Recht haben, wie Sie ein lokaler Sitzungsbenutzer waren.


0

Ich bin auf ein ähnliches Problem mit NX gestoßen und habe folgenden Thread gefunden:

Warum bekomme ich Unity anstelle von Classic, wenn ich NX verwende?

Ich habe meinen Windows NX-Client so bearbeitet, dass der Desktop auf Unix und Benutzerdefiniert eingestellt ist, und dann den folgenden Befehl ausgeführt:

gnome-session --session=classic-gnome

Und New Virtual Desktop ausgewählt .
Danach war ich gut zu gehen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.