Как запустить startx без полномочий root?

10

Недавно я перешел с Ubuntu на Arch Linux. Я установил X11 в качестве оконной системы и KDE в качестве рабочего стола. Я отдельный раздел для /home, /var, /и /bootи все они монтировать во время загрузки. При запуске startxотображается следующее сообщение.

xauth:timeout in locking authority file /home/hello/.Xauthority

Случайно я удалил этот файл. Итак, я скопировал это из /root. Я изменил его полномочия, используя код ниже:

# chown hello:users ~/.Xauthority

Даже после этого я не могу запустить, startxесли я не использую учетную запись root.

Хаби
источник
Копирование файла представляет собой угрозу безопасности. Вы изменили его разрешения (владельца), а не его полномочия.
Ctrl-Alt-Delor
(Пере) переместите ~ / .Xauthority и попробуйте startxснова. Это работает? Если нет, каково точное сообщение об ошибке?
Adaephon

Ответы:

11

Сначала уточнение, Xэто не оконный менеджер , это оконная система .

Теперь в ~/.Xauthorityфайле просто Xхранятся идентификационные данные для сеанса текущего пользователя , это файл, который читается, когда система должна определить, имеете ли вы право использовать текущий Xсеанс.

Вы никогда не должны копировать существующую учетную запись из другой учетной записи, файл всегда должен принадлежать работающему пользователю Xи создается автоматически при запуске нового Xсеанса. Итак, просто удалите тот, который у вас есть, а затем startxснова запустите , все должно работать как обычно:

$ rm ~/.Xauthority; startx
Тердон
источник
Тредон, даже после удаления файла .Xauthority. Я не в состоянии старкс. Он продолжает отображать ту же ошибку.
Хаби
@ Хаби, тебе нужно убедиться, что X сессий не запущено, затем удалить файл и startxснова запустить .
Terdon
Теперь X запускается, но отображает другое сообщение «Ошибка вызова Inusertemp» (временные каталоги заполнены?). Проверьте вашу установку.
Хаби
@ Хаби, хорошо, это прогресс :). Пожалуйста, отправьте другой вопрос для этого, так как это совершенно другая проблема. В новом вопросе покажите нам вывод, df -hа также убедитесь, что эта проблема все еще существует после перезапуска.
Тердон
Тредон, я буду считать этот прогресс. :). Кстати, спасибо.
Хаби
3

Я думаю, что проблема заключается в том, что люди входят в систему как root, а затем переключают пользователей с помощью su -l username, что создает / порождает подпроцесс под root, принадлежащий "username". X будет использовать .Xauthorityпроцесс верхнего уровня (в данном случае root), для которого «username» не имеет разрешения.

Ошибка будет показана:

Cannot open virtual console 1 (Permission denied).

Чтобы решить эту проблему, просто запустите loginвместо suзапуска новую оболочку в качестве основного процесса.

Джонатан Комар
источник
0

Я столкнулся с этим на Lenovo IdeaPad с двумя графическими картами, одна от Intel, другая от Nvidia.

Ошибка, возникшая из-за startxвключенной этой строки:

Не удалось добавить экран / скринит для драйвера плазмы 0 кде

Это было решение:

  1. Изменить /etc/mkinitcpio.conf, добавивMODULES=(nouveau)
  2. sudo mkinitcpio -p linux
  3. перезагрузка
Матиас Браун
источник