Saat mesin tanpa kepala, pengguna tidak lagi memiliki hak istimewa


12

Masalah intinya adalah: SETIAP sesi gnome yang tidak berada di atas tampilan fisik / asli - atau membayangi tampilan itu (mis. Mode bayangan NXserver) - memiliki hak istimewa yang salah. Bahkan ketika dijalankan sebagai root!

Adakah komentar tentang cara untuk memperbaiki perilaku bermasalah untuk sesi VNC / non-shadow NX?


Saya memperbarui server headless Ubuntu di rumah saya setelah beberapa saat, dan saya mengalami banyak masalah yang saya tidak ingat ada di versi Ubuntu sebelumnya.

Beberapa detail:

  • Saya mulai dengan ubuntu-11.04-server-amd64.iso dan kemudian menginstal ubuntu-desktop di atasnya.
  • uname -a: Linux MiddleEarth 2.6.38-8-server # 42-Ubuntu SMP Senin 11 April 03:49:04 UTC 2011 x86_64 x86_64 x86_64 GNU / Linux
  • Perangkat kerasnya adalah Intel D920, Ram 2GB, gfx adalah beberapa nvidia 6600 tanpa kipas, 3xGigabit, 1x100mbit, tanpa monitor, keyboard, mouse terpasang.

Ronde 1

Sementara saya melakukan pengujian / pengaturan dengan monitor terpasang , semuanya sangat bagus, baik ketika duduk di depan monitor itu dan ketika VNCing masuk dari mesin desktop saya (ke vino).

Tanpa monitor masalah muncul:

[Tidak Terpecahkan / Dijatuhkan]

Masalah pertama adalah vino yang keras kepala dan tidak suka memuat sebelum / selama GDM. Tapi karena ini adalah sistem tanpa kepala, saya tidak benar-benar membutuhkannya untuk memulai dengan X secara default (yaitu mengubah level init), jadi itu sedikit diperdebatkan. Namun, saya ingat dengan jelas bahwa ini sangat mudah dilakukan di versi ubuntu yang lebih lama (saya pikir v9.04). Dan itu bekerja dengan baik; tapi tidak lagi!? ... Bagaimanapun aku menjatuhkan ide itu sama sekali.

[Terpecahkan]

Kemudian itu Persatuan / efek mengacaukan VNC (Dipecahkan dengan curang ).

[Belum terpecahkan]

Saya awalnya beralih ke NXserver berharap bahwa mungkin masalah-masalah berikut adalah masalah tightvnc atau vino, tetapi tidak ada keberuntungan seperti itu. (Catatan: baca round2)

Saat mengirim ulang via VNC (atau NXserver) akun pengguna saya kehilangan kemampuan untuk memasang / melepas HDD.

Tangkapan layar: Tidak dapat memasang 750GB_RAID1

Saat mengirim ulang via VNC (atau NXserver) akun pengguna saya tidak dapat mengakses beberapa opsi konfigurasi yang diprivatisasi,
beberapa contoh:

  • tidak dapat melakukan apa pun (mis. 'tambahkan' pengguna atau 'pengaturan lanjutan') di "Sistem -> Administrasi -> Pengguna dan Grup".
  • tidak dapat menggunakan 'membuka' di "Sistem -> Administrasi -> Layar Masuk".
  • gparted gagal mendapatkan informasi apa pun tentang sistem file.
  • dll. (berbagai dialog admin / konfigurasi lainnya juga tidak berfungsi dengan baik)

Saya hanya bisa menebak ini ada hubungannya dengan hak pengguna yang tidak ditugaskan dengan benar ketika perangkat monitor fisik yang sebenarnya tidak terhubung.
Alasan 'MENGAPA' ini terjadi di ubuntu 11.04, ketika tidak ada kepala, lolos dari saya; Saya tidak ingat perilaku ini di versi ubuntu sebelumnya.

Perhatikan bahwa masalah pemasangan HDD bukan merupakan masalah untuk hdds internal / statis (saya baru saja menambahkannya ke fstab karena semuanya statis). Tapi benar-benar sakit besar untuk media usb yang bisa dilepas.

Sisanya, saya belum menemukan cara untuk memperbaikinya ...
Saya tahu apa yang Anda pikirkan ... masuk ke ssh, sudo su, dan jalankan vncserver sepenuhnya di bawah akar?

Tangkapan layar: (sebagai root) gparted gagal menemukan info fs

Kejutan kejutan! gui root juga rusak: gparted gagal mendapatkan info, pengguna & grup sepenuhnya berwarna abu-abu (ini adalah perilaku yang berbeda dari pengguna biasa saya). Anehnya, administrasi administrasi layar Masuk tampaknya berfungsi dengan baik.


Ronde 2

(CATATAN: Saya tidak tahu apakah ini membuat atau tidak membuat perbedaan pada hasil. Di beberapa titik antara ronde 1 dan ronde 2, saya menerapkan perubahan yang disebutkan di pos # 21 dan # 24 di utas ini )

Sesi tightvnc / NXServer reguler memiliki perilaku yang sama, TAPI ...

[Solusi Parsial / Masalah sebenarnya masih ada]

Dalam pengaturan koneksi NXClient, ketika saya memilih mode 'shadow' (shadow melampirkan Anda ke tampilan asli, mis. Desktop shadowing) ...

Semuanya berjalan sempurna di dalam sesi ini!

Satu hal yang saya perhatikan adalah bahwa ia segera meminta saya kata sandi keyring ... mungkin seluruh kekacauan ada hubungannya dengan sistem keyring yang digunakan gnome?

Tetapi, jika saya terhubung dengan koneksi NX biasa (bukan bayangan), atau vnc biasa, ia kembali mengalami masalah yang sama.

PS Ada beberapa hari di antara ketika saya menulis round1 dan round2 (saya menyimpannya dalam file txt secara lokal). Saya sedang menguji berbagai saran untuk melihat apa yang akan berhasil, itu sebabnya saya tidak tahu pasti apakah itu mengedit perangkat VNC xorg.conf atau bahwa pengaturan nomodeset membuat perbedaan.

[EDIT 2011-06-10]

NXServer dan GDM

Pada saat penulisan, saya telah mengatur sistem untuk masuk otomatis, yang mengapa koneksi bayangan hanya berfungsi. Ketika saya kemudian menonaktifkannya dan mem-boot ulang sistem, NX memberikan kesalahan, tetapi dengan sedikit Googling saya menemukan utas ini

Ini adalah komentar & perubahan yang saya lakukan pada /usr/NX/etc/server.cfg saya:

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

(Jika itu jaringan yang lebih umum, yaitu universitas / kantor besar saya mungkin akan menggunakan pengaturan yang lebih ketat, tapi ini cocok untuk saya.)

Setelah reboot saya login dengan nxclient ke pengaturan desktop 'shadow' (tampilan asli) dan mendapat GDM! : D

Sayangnya clipboard tidak berfungsi di sesi 'bayangan' (Ini berfungsi dengan baik pada yang lain / biasa)

[EDIT 2011-06-11]
Stumbled upon Xvfb tetapi memiliki masalah yang sama ketika digunakan seperti ini:

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

Jawaban:


5

Saya menemukan pelakunya.
Diuji pada instalasi baru, dikonfirmasi itu adalah bug.

Saya mengirimkan laporan bug

Singkatnya masalahnya adalah: Dialog otentikasi polkit akan muncul di DISPLAY: 0 bukannya DISPLAY: 1 di mana sesi VNC / NX berada.

Solusinya mungkin menggunakan libpam-keyring untuk autentikasi otomatis saat masuk.
atau ... goreskan itu, yang mungkin tidak akan melakukannya, perubahan untuk semua pengaturan kit kebijakan dari 'auth_admin' menjadi hanya 'ya' mungkin akan memperbaiki masalah, dan itu tentu saja akan membuat policyKit dapat diperdebatkan sama sekali ... desah


1
Bisakah Anda mengubah Xorg.conf Anda untuk menghapus tampilan: 0. Saya tidak melihat alasan X untuk menjalankannya di sana. Dengan cara ini VNC / NX dapat mengambil DISPLAY: 0?
user606723

2

Saya pikir ini adalah perilaku PolicyKit yang benar.

Kebijakan untuk Aktif , tidak aktif dan Setiap pengguna lainnya berbeda, jadi ketika Anda terhubung melalui NX Anda tidak aktif (klien dalam sesi aktif pada konsol lokal), juga aktif (klien dalam sesi aktif pada konsol lokal), tetapi Anda hasil sebagai setiap pengguna.

Anda dapat melihat kebijakan default untuk Tindakan di bawah kendali kebijakan untuk berbagai jenis pengguna dengan perintah

pkaction --verbose

Seperti yang Anda lihat, pengguna tipe Any terbatas dibandingkan dengan pengguna aktif.

Untuk memperbaiki, Anda dapat mengubah kebijakan default. Dalam saran berikut skrip awk untuk membuat file kit kebijakan untuk diletakkan di lokasi yang tepat. Ini skripnya:

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

Misalkan Anda menyebutnya create-policy. Jadikan itu dapat dieksekusi, jalankan skripnya

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

lalu pindahkan file yang dihasilkan:

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

Anda sekarang harus memiliki hak yang sama dengan Anda adalah pengguna sesi lokal.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.