Когда машина без головы, пользователь больше не имеет привилегий


12

Основная проблема заключается в том, что ЛЮБОЙ сеанс gnome, не расположенный поверх реального физического / собственного дисплея, или теневое отображение (т. Е. Режим теней NXserver) - имеет ошибочные привилегии. Даже при запуске от имени root!

Есть какие-нибудь комментарии о способе исправления проблемного поведения для сеансов VNC / non-shadow 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 ГБ оперативной памяти, gfx - безвентиляторный nvidia 6600, 3xGigabit, 1x100 Мбит, без монитора, клавиатуры, мыши.

Раунд 1

В то время как я делал тестирование / настройку с монитором прилагается , все было радужно, как, сидя на линию всасывания этого монитора и при администрировать с помощью VNC в с моей настольной машины (в винишка).

Без монитора, хотя проблемы возникают:

[Нерешенные / брошено]

Самая первая проблема заключалась в том, что Vino был упрям ​​и не любил загружаться до / во время GDM. Но так как это система обезглавленный, я действительно не нужно , чтобы начать с X по умолчанию (т.е. изменить уровень инициализации) в любом случае, так что это немного спорно. Тем не менее, я отчетливо помню, как это было очень легко сделать в старой версии Ubuntu (я думаю, v9.04). И это работало нормально; Но не больше!? ... в любом случае, я полностью отбросил эту идею.

[Решаемые]

Тогда это был Unity / Effects Messing VNC (Решил это путем обмана ).

[Нерешенные]

Первоначально я переключился на NXserver, надеясь, что, возможно, следующие проблемы - это непростые проблемы или проблемы с vino, но не такая удача. (Примечание: прочитайте раунд2)

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

Снимок экрана: невозможно смонтировать 750GB_RAID1

При удаленном подключении через VNC (или NXserver) моя учетная запись пользователя не может получить доступ к некоторым привилегированным параметрам конфигурации,
например:

  • ничего не может сделать (например, «добавить» пользователя или «дополнительные настройки») в «Система -> Администрирование -> Пользователи и группы».
  • нельзя использовать «разблокировать» в «Система -> Администрирование -> Экран входа в систему».
  • gparted не может получить никакой информации о файловых системах.
  • и т. д. (различные другие диалоги admin / config также не работают должным образом)

Я могу только догадываться, что это как-то связано с тем, что пользовательские привилегии не назначаются должным образом, когда фактическое физическое устройство мониторинга не подключено.
Причина «ПОЧЕМУ» это происходит в Ubuntu 11.04, когда он безголовый, ускользает от меня; Я не помню такого поведения в предыдущих версиях Ubuntu.

Обратите внимание, что проблема с монтированием жесткого диска не является проблемой для внутренних / статических жестких дисков (я просто добавляю их в fstab, поскольку они в любом случае являются статическими). Но действительно большая боль для съемных носителей USB.

Остальные проблемы, я не выяснил, как исправить ...
Я знаю, что вы думаете ... Войдите в систему ssh, sudo su и полностью запустите vncserver под root?

Снимок экрана: (как root) gparted не может найти информацию о fs

Сюрприз Сюрприз! Интерфейс root тоже не работает: gparted не может получить информацию, пользователь и группы полностью недоступны (это поведение отличается от моего обычного пользователя). Довольно странно, что программа администрирования экрана входа в систему работает нормально.


Раунд 2

(ПРИМЕЧАНИЕ: я не знаю, оказало ли это влияние на результат. В какой-то момент между 1 и 2 туром я применил изменения, упомянутые в постах № 21 и № 24 в этой теме )

Обычные сеансы тесного соединения с NvServer имеют такое же поведение, НО ...

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

В настройках подключения NXClient, когда я выбираю режим «тень» (тень прикрепляет вас к собственному дисплею, т. Е. Затенение рабочего стола) ...

Все отлично работает внутри этой сессии!

Одна вещь, которую я заметил, это то, что она сразу же спрашивает у меня пароль для ключей ... может быть, весь этот беспорядок имеет какое-то отношение к системе ключей, которую использует gnome?

Но если я соединяюсь с обычным (не теневым) соединением NX или с обычным vnc, у меня возникают те же проблемы.

PS Было несколько дней между тем, когда я писал round1 и round2 (я хранил его в текстовом файле локально). Я тестировал различные предложения, чтобы посмотреть, что будет работать, поэтому я не знаю точно, имели ли значение изменения в VNC-устройстве xorg.conf или настройки nomodeset.

[РЕДАКТИРОВАТЬ 2011-06-10]

NXServer и GDM

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

Это раскомментирование и изменения, которые я сделал на моем /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 для настройки рабочего стола «shadow» (родной дисплей) и получил GDM! : D

К сожалению, буфер обмена не работает в сеансе 'shadow' (он отлично работает с другими / обычными)

[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. Я не вижу причин для того, чтобы Х даже бегал туда. Таким образом, VNC / NX может принимать DISPLAY: 0?
user606723

2

Я думаю, что это правильное поведение PolicyKit.

Политика Активного , Неактивные и любой другой пользователь разные, поэтому при подключении через NX вы не Активные (клиентов в активных сеансах на локальных консолях), ни Неактивный (клиенты неактивных сеансов на локальных консолях), но результат как Любой пользователь.

Вы можете увидеть политику по умолчанию для Действия под управлением политики для разных типов пользователей с помощью команды

pkaction --verbose

Как видите, пользователь типа Any ограничен в сравнении с активными пользователями.

Чтобы исправить это, вы можете изменить политику по умолчанию. Далее предлагается сценарий 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.