Коли машина без голови, користувач більше не має пільги


12

Основна проблема полягає в тому, що БУДЬ-яка сесія гнома не сиділа на реальному фізичному / рідному дисплеї - або затінення цього дисплея (тобто тіньовий режим NXserver) - має помилкові привілеї. Навіть коли працює як root!

Будь-які коментарі щодо способу виправити проблемну поведінку для VNC / нетіньових сеансів NX?


Через довгий час я оновлюю свій домашній безголовий сервер Ubuntu, і у мене виникають багато проблем, про які я не пам’ятаю існуючих у попередніх версіях Ubuntu.

Деякі деталі:

  • Я почав з ubuntu-11.04-server-amd64.iso, а потім встановив ubuntu-desktop на його вершині.
  • uname -a: Linux MiddleEarth 2.6.38-8-сервер # 42-Ubuntu SMP Пн 11 квітня 03:49:04 UTC 2011 x86_64 x86_64 x86_64 GNU / Linux
  • Апаратне забезпечення - Intel D920, 2 ГБ Ram, gfx - це декілька вентиляторів, nvidia 6600, 3xGigabit, 1x100mbit, без монітора, клавіатури та миші.

1 раунд

У той час як я робив тестування / настройку з монітором додається , все було райдужно, як, сидячи на лінію всмоктування цього монітора і при адмініструвати з допомогою VNC в с моєю настільною машини (в вінішко).

Без монітора, хоча виникають проблеми:

[Нерозв’язано / Випало]

Сама перша проблема була Vino упертий і не подобається завантажувати до / під час GDM. Але оскільки це безголова система, мені не потрібно, щоб вона починалася з X за замовчуванням (тобто змінювати рівень init) у будь-якому разі, тож це суперечка. Однак я чітко пам’ятаю, що це було дуже легко зробити у старій версії ubuntu (я думаю, v9.04). І це добре працювало; але не більше! ... у будь-якому разі я взагалі кинув цю ідею.

[Вирішено]

Тоді це було Єдність / Ефекти, що псують VNC (Вирішили це шляхом обману ).

[Нерозв’язано]

Я спочатку перейшов на NXserver, сподіваючись, що, можливо, наступні проблеми - це проблеми hardvnc або vino, але такої удачі немає. (Примітка: прочитати раунд2)

Під час видалення через VNC (або NXserver) мій обліковий запис користувача втрачає можливість монтажу / демонтажу жорстких дисків.

Знімок екрана: неможливо встановити 750GB_RAID1

Під час видалення через VNC (або NXserver) мій обліковий запис користувача не може отримати доступ до деяких привілейованих параметрів конфігурації,
деяких прикладів:

  • не може нічого (наприклад, "додати" користувача або "розширені налаштування") в "Система -> Адміністрація -> Користувачі та групи".
  • не вдається використовувати "розблокувати" в "Система -> Адміністрація -> Екран входу".
  • gparted не може отримати будь-яку інформацію про файлові системи.
  • тощо (різні діалоги адміністратора / конфігурації також не працюють належним чином)

Я можу лише здогадуватися, що це має відношення до того, що привілеї користувача не призначаються належним чином, коли фактичний пристрій фізичного монітора не підключено.
Причина "ЧОМУ" це відбувається в ubuntu 11.04, коли він без голови, уникає мене; Я не пам’ятаю такої поведінки в попередніх версіях ubuntu.

Зверніть увагу, що проблема монтажу жорсткого диска не є проблемою для внутрішніх / статичних hdds (я просто додаю їх до fstab, оскільки вони все одно є статичними). Але насправді великий біль за знімні USB-носії.

З рештою проблем, я не з'ясував, як виправити ...
я знаю, про що ви думаєте ... увійдіть до ssh, sudo su та запускайте vncserver під root повністю?

Знімок екрана: (як root) gparted не вдається знайти інформацію fs

Сюрприз сюрприз! Гуї кореня теж порушені: gparted не отримує інформацію, користувачі та групи повністю сірі (це інша поведінка, ніж мій звичайний користувач). Як не дивно, прогрес адміністрування екрана входу, здається, працює добре.


2 раунд

(ПРИМІТКА. Я не знаю, чи це вплинуло чи не змінило результат. У якийсь момент між 1-м та 2-м раундом я застосував зміни, зазначені в публікаціях №21 та №24 у цій темі )

У звичайних сеансах затяжки / NXServer є однакова поведінка, АЛЕ ...

[Часткове рішення / Актуальна проблема все ще існує]

У налаштуваннях підключення NXClient, коли я вибираю режим "тінь" (тінь приєднує вас до рідного дисплея, тобто тіні для робочого столу) ...

Все працює ідеально всередині цього сеансу!

Одне, що я помітив, це те, що він негайно запитує у мене пароль для введення брелоку ... можливо, весь безлад має щось спільне з системою кепінгу, яку використовує gnome?

Але якщо я підключаюсь до звичайного (не тіньового) NX-з'єднання, або звичайного vnc, він повертається до тих же проблем.

PS Між ними було пару днів, коли я писав round1 та round2 (я зберігав це у файлі txt локально). Я випробовував різні суджені програми, щоб побачити, що буде працювати, і тому я точно не знаю, чи змінили цей пристрій пристрою VNC xorg.conf або цей параметр nomode набору змінив значення.

[EDIT 2011-06-10]

NXServer та GDM

На момент написання програми я налаштував систему на автоматичний вхід, тому тіньовий зв’язок просто працював. Коли я пізніше відключив це і перезавантажив систему, NX видав помилку, але трохи погуглившись, я знайшов цю тему

Це коментарі та зміни, які я зробив у своєму /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"

(Якби це була більш публічна мережа, тобто університет / великий офіс, я б, мабуть, використовував трохи більш жорсткі налаштування, але вони мені добре підходять.)

Після перезавантаження я ввійшов з nxclient на налаштування 'тінь' (рідний дисплей) робочого столу і отримав GDM! : D

На жаль, буфер обміну не працює в сеансі "тінь" (він працює добре в інших / звичайних)

[EDIT 2011-06-11]
Натрапив на Xvfb, але він має ті самі проблеми, коли використовується так:

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

Відповіді:


5

Я знайшов винуватця.
Випробуваний на новому встановленні, підтвердив, що це помилка.

Я подав звіт про помилку

Коротше кажучи, проблема полягає в тому, що діалог аутентифікації polkit з’явиться на DISPLAY: 0 замість DISPLAY: 1, де знаходиться сеанс VNC / NX.

Приблизним рішенням може бути використання libpam-keyring для автоматичної автентифікації під час входу.
або ... подряпати це, що, мабуть, цього не зробить, зміна всіх налаштувань набору політик з "auth_admin" на просто "так", ймовірно, виправить цю проблему, і це, звичайно, зробить політика "Кіт" взагалі ... зітхніть


1
Чи можете ви змінити Xorg.conf, щоб видалити дисплей: 0. Я не бачу причин, щоб X навіть бігав туди. Таким чином VNC / NX може приймати DISPLAY: 0?
user606723

2

Я думаю, що це правильна поведінка PolicyKit.

Політика щодо активних , неактивних та будь-яких інших користувачів відрізняється, тому при підключенні через NX ви не активні (клієнти в активних сесіях на локальних консолях), ані неактивні (клієнти в неактивних сесіях на локальних консолях), але ви отримуєте результат як Будь-який користувач.

Ви можете бачити політику за замовчуванням для Дії під контролем політики для різних типів користувачів за допомогою команди

pkaction --verbose

Як бачите, користувач типу Any обмежений порівняно з Active користувачами.

Щоб виправити, ви можете змінити політику за замовчуванням. Далі пропонуємо сценарій awk для створення файлу набору політик, який слід розмістити в потрібному місці. Це сценарій:

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

Припустимо, ви це називаєте create-policy. Зробіть його виконуваним, виконайте сценарій за допомогою

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

потім перемістіть отриманий файл:

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

Тепер ви повинні мати те саме право, що й користувач місцевої сесії.


0

Я зіткнувся з подібною проблемою з NX і знайшов наступну тему:

Чому я отримую Unity замість Classic під час використання NX?

Я відредагував свій клієнт Windows NX, щоб робочий стіл було встановлено на Unix & Custom, а потім встановив його для виконання наступної команди:

gnome-session --session=classic-gnome

І вибрано Новий віртуальний робочий стіл .
Після цього мені було добре піти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.