Terminix: не указано протокол Не удалось запустить сервер: не удалось подключиться: соединение отклонено [dублировать]

Я вхожу в систему как пользователь 'foo', и если я могу запускать gedit и редактировать файлы в своей машине Ubuntu 12.04 с настройкой DISPLAY как: 0

Если я «su-bar», а затем попробую для редактирования файлов я получаю ошибку протокола без протокола и не открывает необходимые файлы. Что может быть проблемой здесь?

5
задан 12 July 2012 в 10:01

6 ответов

gedit - графическая программа, так что вы не запускаете ее как root с прямым sudo, вы не должны запускать ее как другого пользователя с прямым sudo или прямым su. [ ! d0]

Вместо этого, если у вас (т.е. foo) есть возможность запускать программы в качестве другого пользователя с sudo, это, вероятно, самый простой способ для запуска foo gedit в качестве bar :

xhost +local:bar gksu -u bar gedit

Если у вас нет возможности запускать программы в качестве другого пользователя с sudo, но вы можете su на bar, то это самый простой способ:

gksu -w -u bar gedit

Флаг -w (эквивалентный --su-mode) делает gksu (который является интерфейсом для sudo и su) использует su вместо sudo.

Вам не нужно запускать какую-либо соответствующую команду xhost, чтобы сделать работу gksu -w ....

Если вам нужен графический экземпляр терминала (gnome-terminal), из которого вы можете запускать что-либо в качестве bar, включая графические приложения, вам следует просто запустить новый экземпляр gnome-terminal как bar ( который вы можете сделать так же, как запуск gedit, подробно описанный выше).

4
ответ дан 18 July 2018 в 12:57

вы делаете это с помощью

ssh -l Other-User -X localhost gedit

на рабочем столе появляется новое окно, но с окружением «Другой пользователь» «!

Я тестировал это с Ubuntu 10.04 LTS на моем ящике!

1
ответ дан 18 July 2018 в 12:57

Синтаксис, который вы предоставляете, выглядит неправильно. Если вы хотите переключиться на пользовательскую панель, то я считаю, что вы должны использовать «su bar». Но если это неправильно, я бы подумал, что вы получите сообщение об ошибке при попытке переключить пользователей. Возможно, это опечатка в вашем вопросе, или su все равно.

Я думаю, что более вероятно, что проблема в gedit - это редактор на основе gui, поэтому он пытается запустить сеанс x этого пользователя, Нет, если вы меняете измененных пользователей через терминал. Что произойдет, если вы используете «vi file_to_edit»? Vi - редактор на основе терминалов и не должен быть затронут проблемами gui.

edit: Мне нужно получить компьютерные очки, я думал, что команда, которую вы положили, была «su -бар". Но «su-bar» является допустимым синтаксисом.

-2
ответ дан 18 July 2018 в 12:57

gedit - графическая программа, так что вы не запускаете ее как root с прямым sudo, вы не должны запускать ее как другого пользователя с прямым sudo или прямым su. [ ! d0]

Вместо этого, если у вас (т.е. foo) есть возможность запускать программы в качестве другого пользователя с sudo, это, вероятно, самый простой способ для запуска foo gedit в качестве bar :

xhost +local:bar gksu -u bar gedit

Если у вас нет возможности запускать программы в качестве другого пользователя с sudo, но вы можете su на bar, то это самый простой способ:

gksu -w -u bar gedit

Флаг -w (эквивалентный --su-mode) делает gksu (который является интерфейсом для sudo и su) использует su вместо sudo.

Вам не нужно запускать какую-либо соответствующую команду xhost, чтобы сделать работу gksu -w ....

Если вам нужен графический экземпляр терминала (gnome-terminal), из которого вы можете запускать что-либо в качестве bar, включая графические приложения, вам следует просто запустить новый экземпляр gnome-terminal как bar ( который вы можете сделать так же, как запуск gedit, подробно описанный выше).

4
ответ дан 24 July 2018 в 20:04
  • 1
    Я считаю, что мне нужно сначала запустить «xhost +», чтобы эта работа работала с пользователями, которые не являются root. – Mark Paskal 13 July 2012 в 08:27
  • 2
    @MarkPaskal У меня нет возможности проверить его и без этого прямо сейчас ... поэтому, пожалуйста, не стесняйтесь редактировать мой ответ, чтобы включить эту информацию в инструкции, если хотите! – Eliah Kagan 13 July 2012 в 08:28
  • 3
    Я только что протестировал его. Ваши инструкции с использованием gksu -w работают, но для sudo нет. Я отредактирую. – Mark Paskal 13 July 2012 в 08:36
  • 4
    @MarkPaskal Cool - спасибо за вашу помощь и усилия в улучшении этого ответа! – Eliah Kagan 13 July 2012 в 08:37

вы делаете это с помощью

ssh -l Other-User -X localhost gedit

на рабочем столе появляется новое окно, но с окружением «Другой пользователь» «!

Я тестировал это с Ubuntu 10.04 LTS на моем ящике!

1
ответ дан 24 July 2018 в 20:04

Синтаксис, который вы предоставляете, выглядит неправильно. Если вы хотите переключиться на пользовательскую панель, то я считаю, что вы должны использовать «su bar». Но если это неправильно, я бы подумал, что вы получите сообщение об ошибке при попытке переключить пользователей. Возможно, это опечатка в вашем вопросе, или su все равно.

Я думаю, что более вероятно, что проблема в gedit - это редактор на основе gui, поэтому он пытается запустить сеанс x этого пользователя, Нет, если вы меняете измененных пользователей через терминал. Что произойдет, если вы используете «vi file_to_edit»? Vi - редактор на основе терминалов и не должен быть затронут проблемами gui.

edit: Мне нужно получить компьютерные очки, я думал, что команда, которую вы положили, была «su -бар". Но «su-bar» является допустимым синтаксисом.

-2
ответ дан 24 July 2018 в 20:04
  • 1
    В качестве побочного примечания, если вы хотите редактировать файлы через терминал в качестве другого пользователя, vi является ужасным выбором. Используйте vim или emacs. Я просто дал это в качестве примера, потому что он установлен с Ubuntu по умолчанию. – user76496 12 July 2012 в 10:27
  • 2
    Я на Ubuntu 12.04 OS на своем рабочем столе, и я использую терминал для открытия файлов. (su-bar или su bar), похоже, не имеет никакого значения, и я не хочу использовать vi или vim. gedit будет предпочтительнее, но я все еще вижу ошибку, связанную с DISPLAY, при запуске gedit в качестве другого пользователя, кроме зарегистрированного пользователя. – user352290 12 July 2012 в 10:44
  • 3
    В этой ситуации я думаю, что лучший редактор на основе терминалов. Если бы я был вами, я бы тоже не хотел использовать vi или vim - лично, я думаю, что emacs - далеко лучший выбор. Nano также является опцией ok (похоже, что он также установлен по умолчанию). Я не знаю, как запустить GUI-приложение в качестве другого пользователя, но если кто-то еще, я бы хотел его услышать. – user76496 12 July 2012 в 11:57
  • 4
    @ user76496 Вы можете запустить графическое приложение в качестве другого пользователя (будь то пользователь root или другой пользователь без полномочий root). – Eliah Kagan 12 July 2012 в 17:54

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

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