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

Базовая проблема: ЛЮБАЯ сессия гнома, не находящаяся ontop реального физического/собственного дисплея - или затенение, которые отображаются (т.е. режим тени NXserver) - имеет дефектные полномочия. Даже когда выполнено как корень!

Какие-либо комментарии к способу зафиксировать проблематичное поведение для сессий VNC/non-shadow NX?


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

Некоторые детали:

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

Раунд 1

В то время как я приводил в порядок тестирование/установку с присоединенным монитором, все было замечательно, и при нахождении infront того монитора и когда VNCing в от моей настольной машины (в винишко).

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

[Нерешенный/Отбрасывающий]

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

[Решенный]

Затем это была Единица/эффекты, смешивающая VNC (Решенный это путем обмана).

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

Я первоначально переключился на NXserver, надеющийся, что, возможно, следующими проблемами является tightvnc или проблемы винишка, но никакая такая удача. (Отметьте: считайте round2),

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

Screenshot: Unable to mount 750GB_RAID1

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

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

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

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

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

Screenshot: (as root) gparted fails to find fs info

Неожиданное Удивление! gui корня повреждается также: gparted не удается получить информацию, user&groups полностью grayed (это - другое поведение, чем мой обычный пользователь). Достаточно странно администрирование экрана Login proggy, кажется, хорошо работает.


Раунд 2

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

Регулярные tightvnc/NXServer сессии имеют то же поведение, НО...

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

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

Все работает прекрасное в этой сессии!

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

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

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

[ОТРЕДАКТИРУЙТЕ 10.06.2011]

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 настольной 'тени' (собственный дисплей) установка и получил GDM!:D

К сожалению, буфер обмена не работает на 'теневой' сессии (Это работает над другими/регулярными прекрасными),

[ОТРЕДАКТИРУЙТЕ 11.06.2011]
Споткнувшийся на 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
12
задан 13 April 2017 в 05:25

3 ответа

Я определил местоположение преступника.
Протестированный на новой установке, подтвержденной, это - ошибка.

Я отправил отчет об ошибках

Короче говоря проблема: polkit диалог аутентификации обнаружится ДЕМОНСТРИРУЮЩИЙСЯ:0 вместо ДИСПЛЕЯ:1, где сессия VNC/NX.

Обходное решение может быть должно использовать libpam-брелок-для-ключей для автоматического, проходят проверку подлинности после входа в систему.
или... царапина, что, который, вероятно, не сделал бы этого, изменение для всех настроек набора политики от 'auth_admin' до просто 'да', вероятно, устранит проблему и это, конечно, сделала бы policyKit спорным, в целом... вздыхают

5
ответ дан 23 November 2019 в 03:44

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

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

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

pkaction --verbose

Как Вы видите, пользователь типа, Любой ограничен по сравнению с Активными пользователями.

К средству можно изменить политику по умолчанию. В следующем предложение, чтобы 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/

Теперь необходимо иметь то же право, как Вы были локальным пользователем сессии.

2
ответ дан 23 November 2019 в 03:44

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

Почему я получаю Единицу вместо Классика при использовании NX?

Я отредактировал свой клиент Windows NX, таким образом, рабочий стол установлен на Unix и Пользовательский, затем установил его для выполнения следующей команды:

gnome-session --session=classic-gnome

И выбранный Новый Виртуальный рабочий стол.
После этого я был хорош для движения.

0
ответ дан 23 November 2019 в 03:44

Другие вопросы по тегам:

Похожие вопросы: