Gdy maszyna jest bez głowy, użytkownik nie jest już uprzywilejowany

12

Podstawowym problemem jest: ŻADNA sesja gnome, która nie siedzi na prawdziwym fizycznym / natywnym ekranie - lub zacienianie tego ekranu (tj. Tryb cieni NXservera) - ma wadliwe uprawnienia. Nawet po uruchomieniu jako root!

Czy masz jakieś uwagi na temat sposobu rozwiązania problematycznego zachowania sesji VNC / non-shadow NX?


Po dłuższej chwili aktualizuję swój domowy serwer bezgłowy Ubuntu i mam wiele problemów, o których nie pamiętam, że istniały w poprzednich wersjach Ubuntu.

Trochę szczegółów:

  • Zacząłem od Ubuntu-11.04-server-amd64.iso, a następnie zainstalowałem na nim Ubuntu-Desktop.
  • uname -a: Linux MiddleEarth 2.6.38-8-server # 42-Ubuntu SMP Pon 11 kwietnia 03:49:04 UTC 2011 x86_64 x86_64 x86_64 GNU / Linux
  • Sprzęt to Intel D920, 2 GB Ram, gfx to trochę bez wentylatora NVIDIA 6600, 3xGigabit, 1x100mbit, bez monitora, klawiatury i myszy.

Runda 1

Kiedy przeprowadzałem testy / konfigurację z podłączonym monitorem , wszystko przebiegało sprawnie, zarówno gdy siedziałem przed tym monitorem, jak i kiedy VNCing przychodzi z mojego komputera stacjonarnego (do vino).

Bez monitora pojawiają się jednak problemy:

[Nierozwiązane / upuszczone]

Bardzo Pierwszym problemem był vino jest uparty i nie lubić załadować przed / podczas GDM. Ale ponieważ jest to system bezgłowy, tak naprawdę nie muszę go domyślnie zaczynać od X (tj. Zmienić poziom inicjacji), więc to trochę dyskusyjne. Jednak wyraźnie pamiętam, że było to bardzo łatwe w starszej wersji ubuntu (myślę, że v9.04). I działało dobrze; ale już nie!? ... zresztą zrezygnowałem z tego pomysłu.

[Rozwiązany]

Potem była jedność / efekty psujące VNC (rozwiązane przez oszustwo ).

[Nierozwiązany]

Pierwotnie przeszedłem na NXserver, mając nadzieję, że być może następujące problemy to problemy tightvnc lub vino, ale bez takiego szczęścia. (Uwaga: przeczytaj rundę 2)

Podczas zdalnego przesyłania za pośrednictwem VNC (lub NXserver) moje konto użytkownika traci możliwość montowania / odmontowywania dysków twardych.

Zrzut ekranu: Nie można zamontować 750GB_RAID1

Podczas zdalnego przesyłania przez VNC (lub NXserver) moje konto użytkownika nie ma dostępu do niektórych uprzywilejowanych opcji konfiguracji,
niektórych przykładów:

  • nic nie można zrobić (tj. „dodać” użytkownika lub „ustawienia zaawansowane”) w „System -> Administracja -> Użytkownicy i grupy”.
  • nie można użyć opcji „odblokuj” w „System -> Administracja -> Ekran logowania”.
  • gparted nie otrzymuje żadnych informacji o systemach plików.
  • itd. (różne inne okna dialogowe admin / config również nie działają poprawnie)

Mogę tylko zgadywać, że ma to związek z niewłaściwym przypisaniem uprawnień użytkownika, gdy rzeczywiste fizyczne urządzenie monitorujące nie jest podłączone.
Powód „DLACZEGO” dzieje się to w Ubuntu 11.04, kiedy jest bezgłowy, ucieka mi; Nie pamiętam tego zachowania w poprzednich wersjach ubuntu.

Zwróć uwagę, że problem z montażem dysku twardego nie jest problemem dla wewnętrznych / statycznych dysków twardych (po prostu dodaję je do fstab, ponieważ i tak są statyczne). Ale naprawdę duży ból dla wymiennych nośników USB.

Reszty problemów, nie wymyśliłem, jak to naprawić ...
Wiem, co myślisz ... zaloguj się do ssh, sudo su i całkowicie uruchom vncserver?

Zrzut ekranu: (jako root) gparted nie może znaleźć informacji o fs

Niespodzianka niespodzianka! GUI roota też jest zepsute: gparted nie otrzymuje informacji, użytkownik i grupy są całkowicie wyszarzone (jest to inne zachowanie niż mój zwykły użytkownik). Co dziwne, programowanie zarządzania ekranem logowania wydaje się działać dobrze.


Runda 2

(UWAGA:. I nie wiem, czy to zrobił lub czego nie robi różnicy w wynikach W pewnym momencie pomiędzy 1 rundzie i 2 rundzie, zastosowałem zmiany wymienione w postach # 21 i # 24 w tym wątku )

Regularne sesje tightvnc / NXServer mają takie samo zachowanie, ALE ...

[Częściowe rozwiązanie / Rzeczywisty problem nadal występuje]

W ustawieniach połączenia NXClient, kiedy wybieram tryb „cienia” (shadow dołącza do natywnego wyświetlacza, tj. Cieniowanie pulpitu) ...

W tej sesji wszystko działa idealnie!

Zauważyłem tylko, że natychmiast prosi mnie o hasło do kluczy ... może cały bałagan ma coś wspólnego z systemem kluczy, którego używa gnome?

Ale jeśli połączę się ze zwykłym (nie w tle) połączeniem NX lub zwykłym VNC, to powrócą do tych samych problemów.

PS Między kilkoma dniami między pisaniem round1 i round2 było kilka dni (trzymałem go lokalnie w pliku txt). Testowałem różne sugestie, aby zobaczyć, co by działało, dlatego nie wiem na pewno, czy edycja urządzenia VNC xorg.conf lub to ustawienie nomodeset miało znaczenie.

[EDYCJA 2011-06-10]

NXServer i GDM

W czasie pisania ustawiłem system na automatyczne logowanie, dlatego właśnie połączenie w tle po prostu działało. Kiedy później to wyłączyłem i zrestartowałem system, NX dał błąd, ale przy odrobinie Googlinga znalazłem ten wątek

Oto niepomocne zmiany i zmiany, które wprowadziłem na moim /usr/NX/etc/server.cfg:

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

(Jeśli byłaby to bardziej publiczna sieć, tj. Uniwersytet / duże biuro, prawdopodobnie użyłbym trochę bardziej rygorystycznych ustawień, ale mi to odpowiada.)

Po ponownym uruchomieniu zalogowałem się za pomocą nxclient do ustawienia „cienia” (natywnego wyświetlania) na pulpicie i dostałem GDM! :RE

Niestety schowek nie działa w sesji „cienia” (działa dobrze na innych / zwykłych)

[EDYCJA 2011-06-11] Natknąłem się
na Xvfb, ale ma takie same problemy, gdy jest używany w ten sposób:

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
DM8
źródło

Odpowiedzi:

5

Zlokalizowałem winowajcę.
Testowany na nowej instalacji, potwierdził, że jest to błąd.

I przedstawiła raport o błędzie

Krótko mówiąc, problem polega na tym: okno dialogowe uwierzytelniania polkit pojawi się na WYŚWIETLACZU: 0 zamiast WYŚWIETLACZA: 1, gdzie jest sesja VNC / NX.

Obejściem tego problemu może być użycie klucza libpam do automatycznego uwierzytelnienia podczas logowania.
lub ... podrap, że to prawdopodobnie nie zrobiłoby tego, zmiana wszystkich ustawień zestawu zasad z „auth_admin” na po prostu „tak” prawdopodobnie rozwiązałaby problem, i to oczywiście spowodowałoby, że policyKit byłby całkowicie ... westchnienie

DM8
źródło
1
Czy możesz zmienić Xorg.conf, aby usunąć display: 0. Nie widzę powodu, żeby X nawet tam działał. W ten sposób VNC / NX może wykonać WYŚWIETLANIE: 0?
user606723,
2

Myślę, że to jest prawidłowe zachowanie PolicyKit.

Zasady dla Aktywnego , Nieaktywnego i Dowolnego innego użytkownika są różne, więc kiedy jesteś połączony przez NX, nie jesteś Aktywny (klienci w aktywnych sesjach na lokalnych konsolach), ani Nieaktywny (klienci w nieaktywnych sesjach na lokalnych konsolach), ale otrzymujesz wynik Dowolny użytkownik.

Domyślną zasadę dla akcji można wyświetlić pod kontrolą strategii dla różnych typów użytkowników z poleceniem

pkaction --verbose

Jak widać, użytkownik typu Any jest ograniczony w porównaniu do aktywnych użytkowników.

Aby temu zaradzić, możesz zmodyfikować domyślne zasady. Poniżej zasugeruj skrypt awk, aby utworzyć plik zestawu zasad, aby umieścić go we właściwej lokalizacji. To jest skrypt:

#!/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
    }
  }
}

Załóżmy, że to nazywasz create-policy. Aby był wykonywalny, uruchom skrypt za pomocą

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

następnie przenieś wynikowy plik:

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

Teraz powinieneś mieć takie samo prawo jak użytkownik sesji lokalnej.

enzotib
źródło
0

Miałem podobny problem z NX i znalazłem następujący wątek:

Dlaczego korzystam z NX zamiast Unity?

Zredagowałem mojego klienta Windows NX, aby ustawić pulpit na Unix i niestandardowe, a następnie ustawić na uruchomienie następującej komendy:

gnome-session --session=classic-gnome

I wybrałem Nowy wirtualny pulpit .
Potem byłem już gotowy.

David B.
źródło