Linux запуск графического приложения от имени другого пользователя

Содержание
  1. Запуск графического приложения от имени другого пользователя
  2. Re: Запуск графического приложения от имени другого пользователя
  3. Re: Запуск графического приложения от имени другого пользователя
  4. Re: Запуск графического приложения от имени другого пользователя
  5. Re: Запуск графического приложения от имени другого пользователя
  6. Re: Запуск графического приложения от имени другого пользователя
  7. KDE4: Как запускать приложения от имени другого пользователя
  8. Что использовать для запуска GUI-программ от имени root?
  9. linux-notes.org
  10. Запустить команду от другого пользователя в Unix/Linux
  11. Запустить команду от другого пользователя в Unix/Linux — способ 1
  12. Запустить команду от другого пользователя в Unix/Linux — способ 2
  13. Запустить команду от другого пользователя в Unix/Linux — способ 3
  14. 5 thoughts on “ Запустить команду от другого пользователя в Unix/Linux ”
  15. Добавить комментарий Отменить ответ
  16. unixforum.org
  17. Запуск GUI-программы от имени пользователя (При запуске Х’ов root’ом)
  18. Запуск GUI-программы от имени пользователя
  19. Re: Запуск GUI-программы от имени пользователя
  20. Re: Запуск GUI-программы от имени пользователя

Запуск графического приложения от имени другого пользователя

Собственно есть графическая программа xprog, которую необходимо запустить от имени другого пользователя B в оконной среде пользователя A. Как это сделать? В голову приходит только
gksudo -u B xprog
Однако X сервер это не приемлет:
Xlib: connection to «:0.0» refused by server
Есть какие-то идеи?

Re: Запуск графического приложения от имени другого пользователя

xhost +
su -c xprog username

Re: Запуск графического приложения от имени другого пользователя

Это наверно потому, что прав на подключение к X-серверу нет.

Простой способ: «xhost +localhost», дальше если $DISPLAY стоит правильно то должно заработать.

Сложный способ: man xauth.

Re: Запуск графического приложения от имени другого пользователя

а вообще-то, безопаснее
xhost local:

Re: Запуск графического приложения от имени другого пользователя

Спасибо, то, что надо!

Re: Запуск графического приложения от имени другого пользователя

а еще лучше почитать man xauth. а то малоли кто там на local: сидит.

Источник

KDE4: Как запускать приложения от имени другого пользователя

В прежней (третьей) версии KDE, при помощи подменю «Выполнить команду» из «Главного Меню», или клавишами Alt+F2 была возможность запустить любую программу от имени другого пользователя.

Это было очень удобно для работы: например, если нужно быстро отредактировать файл /etc/fstab или xorg.conf, редактировать которые рядовым пользователям не по чину, то запускаешь KWrite от имени root’а и редактируешь.

В новом KDE4 из окошка «Выполнить программу» исчезли все дополнительные опции. Чтобы выполнить приложение от имени другого пользователя, тут надо или перезагружать Иксы с соответствующим логином, либо запускать новый сеанс, или открывать терминал, выполнять команду su, и запускать нужное приложение из терминала. Ведь файлового менеджера с root привилегиями тоже не предусмотрено. (Если из файлового менеджера с root привилегиями открыть текстовой файл в каком-нибудь редакторе, то редактор откроется тоже с root привилегиями, как дочерний процесс).

Однако выход все же есть. Линукс есть Линукс, и всякую задачу можно решить не мытьем, так катаньем. Можно заранее приготовить себе в «Главном меню» кнопки «Файловый менеджер с root привилегиями» и «Текстовый редактор с root привилегиями».

Читайте также:  Где находится справка windows

Для этого нужно:

1. Переключиться к классическому стилю меню (правой кнопкой мыши открыть раскрывающееся меню, щелкнув на значке «Главного меню»). Это не обязательно, но редактор меню работает именно в классическом стиле.

2. Открыть «Редактор меню» (той же правой кнопкой мыши на том же значке).

3. На панели инструментов «Редактора меню KDE» нажать кнопку «Новый элемент».

4. В появившемся окошке ввести имя нового элемента, скажем KWrite-root. И нажать кнопку ОК. Пункт KWrite-root появится слева в списке приложений на первом месте.

5. А справа появятся свойства этого элемента. Имя уже вписано; если хотите, то введите описание (оно появляется при наведении указателя мыши) и комментарий в соответствующих графах. Но самое главное — это графа «Команда», в нее надо вписать команду запуска приложения. Для KWrite это, скорее всего, будет команда kwrite (если все пути -paths- правильно установлены). Если не работает, то нужно ввести полный путь к исполняемому файлу. Найти исполняемый файл поможет команда locate kwrite в root консоли. (Она выдаст множество информации, но вас интересуют только директории /bin, /sbin, /usr/bin и /usr/sbin, поэтому можно ввести команду # locate kwrite | grep ‘.bin’ — она отберет только директории содержащие выражение «bin» с любым количеством символов впереди).

6. Теперь выберите значок для нового пункта «Главного меню». Для этого нужно щелкнуть левой кнопкой мыши на знаке вопроса, рядом с только что заполненными графами. Откроется окно со множеством значков, выберете любой на свой вкус.

7. Перетащите мышью новую строку меню на отведенное ей место (где вам удобно).

8. Теперь откройте вкладку «Дополнительно» и поставьте крестик в окошке «Запускать от имени другого пользователя», а в качестве имени другого пользователя укажите root.

9. Остается нажать на кнопку «Сохранить» на панели инструментов «Редактора меню». Появится окно «Изменение конфигурации системы», пробежит индикатор исполнения и оно закроется само.

Теперь можно открывать «Главное меню» и проверить, как работает новая кнопка. Если при нажатии на нее сначала появляется окно «Запустить с правами доступа root — KDE su», то все в порядке — вводите пароль root и редактируйте любые файлы.

Таким же способом можно сделать себе файловый менеджер с правами root, лучше выбрать Konqueror — его возможности несравненно больше, чем у Дельфина.

Источник

Что использовать для запуска GUI-программ от имени root?

Если su/sudo — корёжит права на файлы в хомяке, выставляя владельцем root. gksudo предлагается для gtk, kdesudo — для kde. В чём разница и есть ли универсальный вариант?

Что есть в системе, то и пользуйте.

Решение проще чем кажется. Не запускать GUI программы от root.

Я не спросил, запускать ли их. Я спросил, чем запускать.

всегда использовал gksu. оно работает как sudo, вроде ставится отдельным пакетом. Библиотека или gtk+ без темы, или что то на Х-виджетах

К стати тоже интресует относительно использования таких дистров, например, как Xubuntu с Xfce. Там даже вручную установленный gksu нифига не работает. А некоторый проги запускаются если в окошке Alt+F2 их запускать тупо через sudo. Другие же и так не запускаются. В общем как-то неочевидно.

Читайте также:  Не удалось настроить обновления windows безопасный режим

xhost+ &&export DISPLAY=:0 &&program

Если su/sudo — корёжит права на файлы в хомяке, выставляя владельцем root.

Чтобы не забыть добавь alias в .bashrc

корёжит права на файлы в хомяке, выставляя владельцем root

А то ты делаешь от рута в своём хомяке?

sudo dolphin ломает права на временные файлы KDE до рестарта сессии.

лол, ничего подобного

su-to-root -X -c «название программы»

Пример с программой Synaptic

su-to-root -X -c synaptic

su-to-root -X -c bleachbit

Ага, спасибо, попробую. Кстати, в synaptic и gparted используется pkexec. Что это за зверь?

Debian Jessie Xfce

А права сабж не портит? Если я им открою файл юзера и что-то изменю, то что будет с правами?

наверное, как-то связано с policykit-1

С помощью команды запустить программу с правами администратора на протяжении всей сессии.

Что-то тебя глючит слегка.

Там даже вручную установленный gksu нифига не работает.

Потому что в окружениях не-KDE и не-GNOME проще использовать ktsuss.

Логинься в кеды рутом, тогда конфиги и все остальное будет в /root с владельцем root.

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

А если сделать sudo -H ?

ничего ни где не корежит.

Если надо писать в виндовс раздел, а у меня он специально на запись только от рута, то использую krusader, там кнопочка есть, запустить от рута

Долгое время пользовался gksu, но оно, хоть и умеет запоминать пароль, зависит от гномодемонов и временами отваливается. Слез, пробовал ktsuss, LXDE-шный polkit, ещё пару приблуд каких-то — задолбался, просто прописал себе NOPASSWD и запускаю всё через sudo. Мне б лучше способ из-под рутовой программы запускать софт под пользователем, поскольку ФМ держу только под рутом всегда, а файлы открываю из него — в результате дублирование настроек — пользую Geeqie, Atril, LibreOffice, SMPlayer под рутом, а M$O вообще только под рутом и ставил, ибо жирный. Уже плеер только под рутом не конает, поскольку пульса от рутовых прог ломается.

Источник

linux-notes.org

Запустить команду от другого пользователя в Unix/Linux

Иногда, просто необходимо запустить команду от другого пользователя. И существует несколько способов, как это можно сделать. Я расскажу о них в своей статья «Запустить команду от другого пользователя в Unix/Linux».

Запустить команду от другого пользователя в Unix/Linux — способ 1

И так, можно использовать утилиту SUDO. Рассмотрим пример:

  • -H YOUR_HOME: Задает HOME (Переменное окружение для хома конкретного юзера) и по умолчанию — это root.
  • -u YOUR_USER: Задаем пользователя от которого будет выполнена команда.
  • -c YOUR_COMMAND: Служит опцией для ввода команды.
Читайте также:  Сборка windows что поставить

Запустить команду от другого пользователя в Unix/Linux — способ 2

Можно использовать утилиту SU. И сейчас приведу несколько примеров.

Логин в root юзера

Чтобы получить рута, выполните:

Запустить команду как root юзер

Вот пример команды:

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

И так, вот пример:

Рассмотрим другой пример:

  • — — Будет имитировать логин указанного пользователя.
  • -c — Служит для указания команды для выполнения (для указанного юзверя).

Запустить команду от другого пользователя в Unix/Linux — способ 3

И так, можно использовать утилиту runuser. Команда runuser запускает оболочку с заменяющими идентификаторами пользователей и групп. Эта команда полезна только когда вы залогинены как пользователь root. Синтаксис выглядит следующим образом:

Как пример, я покажу следующую строку:

PS: Для использования команды runuser пароль не требуется, и он должен запускаться только пользователем root.

  • -l: Создаст оболочку для входа в систему, используя файл runuser-l PAM вместо стандартного.
  • -g: Указывает на основную группу.
  • -G: Указывает на дополнительную группу.
  • -c: Собственно, служит для указания команды.
  • –session-command=COMMAND: Передает одну команду в оболочку с опцией «-c» и не создает новый сеанс.
  • -m: Не сбрасывайте переменные среды (ENV).

Вот и все, тема «Запустить команду от другого пользователя в Unix/Linux» завершена.

5 thoughts on “ Запустить команду от другого пользователя в Unix/Linux ”

> $ sudo -H -u Your_another_user bash -c ‘ping linux-notes.org’

Смешались sudo и bash:

$ sudo -u user echo a
a

$ bash -c ‘echo a’
a

Да, уже поправил. Моя опечатки. Спасибо)

su asterisk -c «xxx»
This account is currently not available.

У меня вот проблема. Надо, чтобы звук из одной сессии (x2go)
Было слышно в другой сессии. Наверное даже не так.
Некоторые программы запускаются при загрузке ПК от user1.
Когда входишь через x2go тем же user1 звук (сигнализация) от этих демонов не слышно. Всю башку сломал. Подскажите пож как решить.

sudo -u www-data pwd

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

  • Темы без ответов
  • Активные темы
  • Поиск
  • Статус форума

Запуск GUI-программы от имени пользователя (При запуске Х’ов root’ом)

Запуск GUI-программы от имени пользователя

Сообщение Zeus » 02.09.2006 01:01

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

Для этого загружаю 3й уровень и в rc.local вызываю startx.
Xы запускаются от имени root’а.
В /root/.xinit.rc прописан запуск графической софтины от имени пользователя user:
su user —command=/home/myprog/start.sh
Она стартует (процесс появляется), но окно не появляется и процесс падает — что-то там про X-протокол говорит.

Вопрос:
а как правильно и на каком этапе в таком вот случае сменить пользователя?

Re: Запуск GUI-программы от имени пользователя

Сообщение BaZilio » 02.09.2006 02:48

Re: Запуск GUI-программы от имени пользователя

Сообщение Zeus » 02.09.2006 09:14

Источник

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