No protocol specified linux

Иксы при загрузке: No protocol specified

И не грузятся. Это у одного из пользователей на нетбуке. Ещё вчера всё было норамльно, кстати из под меня тоже нормально заходит. Система логина одинаковая — логин из tty — startx в

/.bashrc никто не трогал с мая месяца, /etc/X11/xorg.conf, который грузят оба пользователя (и мой, и тот который вываливается), тоже. Куда ещё посмотреть?

Компильни ебилдца, может заработает.

Я уже распаковал из бинарника, оно всё равно продолжается. В /tmp ничего не висит, в хомпапке вроде тоже. И перезагрузкой это тоже не лечится.

а .xinitrc в home нормальный? и лог желательно не резать. такое еще бывает, если пользователя грохали — тутже создавали.

А прав на всё хватает? Например на

/.kde (или что у него там), .

С мая не трогали, вчера работал.

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

такое еще бывает, если пользователя грохали

Ну, .X0lock в /tmp ему создавать прав хватает. В $HOME создаёт .serverauth-* (и оставляет лежать там).

/.ICEauthority нет, его надо создать?

/.kde нет, там i3, но до него — у того пользователя — загрузка не доходит, иксы переключают tty на 7 и там висят чёрным экраном, в это время в логи раз в две секунды пишется

А в группе video юзер присутствует?
Если с одного юзера работает, а с другого нет — обычно это косяк с правами где-то на что-то.

Источник

No protocol specified.

Доброго времени суток, уважаемые ЛОРовцы.
Система Xubuntu 14.04. В одно прекрасное утро, с системой произошло следующее. После ввода пароля в LightDM’е, все, кроме курсора и обоины, пропало и. ничего.
Я сделал Ctrl+Alt+F1, залогинился и убил все это дело командой:

  • Пробовал startxfce4
  • Менял owner’а и права доступа всех скрытых файлов в домашней директории и в /tmp

Ничего не помогло. Но что самое интересное, так это то, что из-под root’а все прекрасно работает.
Уважаемые ЛОРовцы, помогите решить эту проблему.

Попробуй startx xterm

Показывай логи X’ов.

Вот /var/log/Xorg.0.log.
Ноутбук Acer Aspire V3-571G, если что.

X-ы у тебя работают (можешь попробовать xinit — :3 ), ошибка дальше, при запуске WM/DM/DE. Смотри/покажи

/.xinitrc и, на всякий случай, ifconfig .

Там пусто. Сейчас перезагружусь и покажу ifconfig.

Все, всем спасибо за ответы. Проблема решена. Хомяк у меня на отдельном разделе. Я видел где-то когда гуглил, что причиной этой ерунды может быть закончившееся место на диске, но, сдуру, не обратил на это внимание. Т.о. от рута все работало (место в корне хватает), а от пользователя — нет.
Вопрос теперь в другом. Подскажите, пожалуйста, почему закончившееся место на диске може вызвать такую ерунду?

Читайте также:  Ping ipv6 from windows

Подскажите, пожалуйста, почему закончившееся место на диске може вызвать такую ерунду?

Конфиги не создаются или не изменяются, хотя во время сеанса они постоянно меняются или создаются.

Источник

Почему я не могу запустить приложения с графическим интерфейсом из «root»: «Протокол не указан»?

Я установил Debian на мою машину прошлой ночью. Теперь я не понимаю, почему я не могу запускать приложения с графическим интерфейсом из терминала при запуске от имени пользователя root.

Создает следующий вывод:

Но когда я впервые открываю терминал, я могу работать glxgears с учетной записью пользователя. Только после того, как я это сделаю sudo -i , проблема возникнет. Это происходит для любого приложения с графическим интерфейсом, которое я пытаюсь запустить. Я думаю, что это, вероятно, связано с X11, но я не уверен.

Доступ к X-серверу требует двух вещей:

  • $DISPLAY Переменная указывает на правильный дисплей (обычно :0 )
  • Правильная информация для аутентификации

Информация аутентификации может быть явно указана через $XAUTHORITY , и по умолчанию в

/.Xauthority противном случае.

Если $DISPLAY и $XAUTHORITY установлен для вашего пользователя, sudo то установит их и для новой оболочки, и все должно работать нормально.

Если они не установлены, они, вероятно, по умолчанию будут использовать неправильные значения, и вы не сможете запускать и X-приложения.

В Debian $XAUTHORITY это обычно не устанавливается явно. Просто добавь

Вам .bashrc или прямо говорят XAUTHORITY=

/.Xauthority sudo . и все должно работать.

Вы также можете использовать xauth list для проверки наличия правильной информации аутентификации.

У меня был такой же вопрос, как и у вас, но для обычного пользователя. Допустим, я хочу запустить firefox, используя учетную запись пользователя foo. Я вошел как бар:

К сожалению, эта команда завершилась с той же ошибкой, что и в вопросе (т. Е. Протокол не указан и не может открыть дисплей)

Моим решением было просто добавить пользователя foo в список авторизованного доступа к X-серверу.

И все, я смог запустить Firefox (и другое приложение X), используя sudo пользователя foo.

Справочная информация : в X Window существует архитектура клиент / сервер. Когда вы запускаете приложение, вы запрашиваете у X-сервера авторизацию для его отображения. По умолчанию, когда вы открываете сеанс (вы входите в систему графически), вам (вашему пользователю), очевидно, разрешается общаться с сервером и отображать приложения. Другие пользователи не имеют этого разрешения, если вы не укажете его. xhost инструмент для манипулирования списком разрешений si Указывает на то, что правило на стороне сервера и авторизации локального пользователя foo к приложениям дисплея. X Window очень мощен в этом отношении, и вы можете отображать удаленные приложения локально, играя с DISPLAY переменной окружения и xhost (но не ограничиваясь ими). В старые времена, когда люди печатали xhost + и косвенно позволил каждому использовать свой сеанс X, стало возможным отображать приложение на экране для шалостей 😉 не так много в наше время, как люди все меньше и меньше используют архитектуру клиент / сервер X Window (по крайней мере, что я наблюдаю в последние 10 лет).

Источник

Ошибка cannot open display в Linux

В операционной системе Linux очень жёсткий контроль полномочий для пользователей. Если пользователь не имеет прав администратора, то он не сможет сделать практически ничего дальше своей домашней папки. Но обычно графические приложения запускаются от имени рядового пользователя. Однако время от времени нужно что-то делать в графическом интерфейсе с файлами, которые не принадлежат текущему пользователю.

И тогда новички пытаются запустить нужное графическое приложение через sudo. Как правило, в таких ситуациях они получают ошибку «cannot open display :0 linux» или нечто подобное. В этой статье мы поговорим о том, что означает эта ошибка, а также как её обойти.

Читайте также:  Zabbix agent linux установка локально

Что означает «cannot open display» в Linux?

Эта ошибка может выглядеть по-разному, в зависимости от приложения, которое вы будете запускать:

  • Gtk warning cannot open display :0;
  • Unable open display :0;
  • Can’t connect to display :0 No protocol specified;

И так далее. Все эти ошибки означают одно: программа не может подключиться к графической подсистеме. Чтобы понять почему это происходит, возвращаемся к тому, что было сказано в самом начале статьи — в Linux очень жёсткий контроль прав пользователей.

В отличие от Windows, где графический интерфейс тесно интегрирован в операционную систему, в Linux это просто ещё одна программа, запущенная от имени обычного пользователя. Эта программа — графический сервер, на данный момент чаще всего используется Xorg.

Ещё одно отличие от Windows — это то, что вы можете запустить несколько графических серверов, и они будут работать не мешая друг другу, потому что каждый из них имеет свой адрес, по которому к нему можно подключиться. Эти серверы доступны глобально во всей системе (почти), но чтобы программы знали, к какому адресу им обращаться при запуске X-сервера, для текущего пользователя создаётся переменная DISPLAY с адресом графического сервера. По умолчанию для первого сервера присваивается адрес :0, для второго :1 и так далее.

Но поскольку при запуске команды через sudo для неё создаётся новое окружение с полномочиями суперпользователя и все переменные текущего пользователя из него не доступны, то наша программа просто не знает, по какому адресу ей обращаться. Это что касается ошибки, когда в конце сообщения «can’t open display» нет нуля. Если нуль есть, значит адрес известен, но X-сервер запрещает подключение. По умолчанию X-сервер разрешает подключаться к себе только пользователю, от имени которого он запущен. А теперь давайте разберём, как обойти проблему.

Как исправить «can’t open display :0»

Начнём с того, что для запуска графических приложений от имени суперпользователя существуют специальные утилиты. Программа sudo для этого не предназначена. Изначально для таких целей использовались kdesudo в KDE и gksu в Gnome. Сейчас они считаются устаревшими и поставляются по умолчанию далеко не всегда. В Ubuntu вы можете установить gksu командой:

sudo apt install gksu

А затем запустить с помощью неё своё приложение:

Но надо заметить, что с дисплейным сервером Wayland эта утилита работать не будет. А полноценных альтернатив gksu не существует.

1. Использование PlicyKit

Есть утилита pkexec. Она достаточно удобная, но для каждой программы, которую вы хотите запустить с помощью неё надо создавать отдельно файл настройки. Например, чтобы запустить Nautilus, надо открыть файл ниже и добавить в него такой текст:

sudo vi /usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy

Это значит, что для каждого приложения нам необходимо включить параметр org.freedesktop.policykit.exec.allow_gui=true, иначе переменная DISPLAY экспортирована не будет. Теперь мы можем запустить nautilus:

Это очень неудобно для запуска новых приложений, поэтому есть ещё несколько путей. Другой вариант — вручную передать утилите нужные переменные:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY nautilus

2. Использование sudo

Можно попросить sudo передать все переменные нашего пользователя во временное окружение суперпользователя с помощью опции -E:

sudo -E nautilus

Тогда программа запускается.

3. Использование gvfs

Gnome Virtual Filesystem тоже позволяет получить доступ к файлам с правами администратора. Особенно если вам надо только отредактировать файл. Для этого просто добавьте в начале пути admin://. Например, так можно открыть файл /etc/group для редактирования с помощью gedit:

Смысл здесь в том, что программа запускается от имени обычного пользователя, а файл доступен ей через виртуальную файловую систему.

Читайте также:  Что делать если не устанавливается mac os

4. Снимаем ограничение доступа к Xorg

Обычно если переменная $XAUTHORITY содержит адрес файла аутентификации Xorg, то программа использует его для аутентификации в Xorg. Но если значение переменной не установлено, то сервер не позволит установить соединение. Например, если вы получаете ошибку подключения к Display :0, это значит, что адрес дисплейного сервера известен, но к нему нет доступа. Надо разрешить подключаться к Xorg суперпользователю. Для этого используйте команду:

Эта команда действует только до перезагрузки, чтобы сделать её постоянной, добавьте команду в конец

#!/bin/bash
xhost +SI:localuser:root &

Выводы

В этой статье мы рассмотрели, как исправить ошибку gtk warning «cannot open display :0» в Ubuntu или другом дистрибутиве. Как видите, это не очень сложно. А вы знаете другие пути решения? Напишите в комментариях!

Источник

Arch Linux

You are not logged in.

#1 2015-03-21 08:39:32

No protocol specified xhost: unable to open display «:0.0»

I know this is a common problem.
Whenever I try to start firefox, xclock, dolphin, or any gui from terminal it shows this errors:

My $DISPLAY and $XAUTHORITY are present in my environment; however, things do not work.

I have tried several «solutions» and none work for me
I have tried this:
https://bbs.archlinux.org/viewtopic.php?id=108695
http://unix.stackexchange.com/questions … -specified
http://www.linuxquestions.org/questions … 175462031/
http://unix.stackexchange.com/questions … -superuser

#2 2015-03-21 10:13:58

Re: No protocol specified xhost: unable to open display «:0.0»

It’s not clear
1. are you running from X or from tty
2. why are you trying to run GUI apps as root. https://wiki.archlinux.org/index.php/Ru … ps_as_root

#3 2015-03-21 13:36:10

Re: No protocol specified xhost: unable to open display «:0.0»

I startx into a KDM display manager.
From here I open my terminal and open chrome and do my thing.
Then, if I want to open any GUI from the terminal. i.e, evince, firefox, dolphin, or whatever. I get that error.

If I try to open those GUIs without the terminal, then the GUIs would just don’t show up at all and no error
message is shown.

Even when I try to run things as non-root I get those error messages.

Last edited by knowNothing23 (2015-03-21 13:37:22)

#4 2015-03-21 13:43:13

Re: No protocol specified xhost: unable to open display «:0.0»

What’s the output of

When did this problem start?

Last edited by karol (2015-03-21 13:46:38)

#5 2015-03-21 20:10:08

Re: No protocol specified xhost: unable to open display «:0.0»

The problem started since I installed my arch linux for the first time.
I had this problem before with other laptops, but the other solutions worked that time.

BTW, I also get the error of warning some files such as /temp/* has as owner other user or something.
This happens when I install stuff with pacman.

Here’s the output you requested:

Thanks for the help!

Last edited by knowNothing23 (2015-03-21 20:10:35)

#6 2015-03-21 20:24:53

Re: No protocol specified xhost: unable to open display «:0.0»

And don’t run your browser as root: that is just insane.

Registered Linux User #482438

#7 2015-03-21 20:28:30

Re: No protocol specified xhost: unable to open display «:0.0»

I read the page, but I don’t know what you mean by fix.

Should my hostname be jav?

#8 2015-03-21 20:40:48

Re: No protocol specified xhost: unable to open display «:0.0»

I read the page, but I don’t know what you mean by fix.

Should my hostname be jav?

?
In your first post I see

Is this what’s literally printed on th screen?

Источник

Оцените статью