Невозможно запустить gedit от имени другого пользователя

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

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

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

3 ответа

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

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

xhost +local:bar
gksu -u bar gedit

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

gksu -w -u bar gedit

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

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

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

0
ответ дан 12 July 2012 в 09:01

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

ssh -l Other-User -X localhost gedit

на вашем рабочем столе запущено новое окно, но со средой «Other-User»!

Я проверил это с Ubuntu 10.04 LTS на моей коробке!

0
ответ дан 12 July 2012 в 09:01

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

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


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

0
ответ дан 12 July 2012 в 09:01

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

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