MyTetra Share
Делитесь знаниями!
Как, находясь под пользователем root, запустить графическую GUI-программу от другого пользователя?
Время создания: 07.10.2025 11:14
Текстовые метки: linux, sudo, su, root, пользователь, запуск, программа, команда, export, display, диплей, экран, рабочий стол, подключиться, X-сервер, X11, ssh
Раздел: Компьютер - Linux - Bash - Команды и скрипты
Запись: xintrea/mytetra_syncro/master/base/17598248438uqzlw8tts/text.html на raw.githubusercontent.com

Если подключиться по SSH к консоли удаленной LInux-машины под пользователем root, или под каким-нибудь обычным пользователем и переключиться в консоли на пользователя root через команду "su -", то имеется возможность запустить графичекую GUI-программу для любого не-root пользователя, который залогинился в сеанс сервера X11.


Для этого можно, находясь под root, выполнить команду:



sudo -u myuser sh -c "export DISPLAY=:0.0 ; /usr/bin/ourGuiProgram"



Где:


  • myuser - это пользователь, который залогинен в графическую среду X11.
  • ourGuiProgram - какая-то Gui-программа, которыую надо запустить.


Примечательно то, что из-за того, что команда sudo выполняется из-под root, то она не потребует ввода пароля пользователя, и просто выполнится.


Следует учитывать, что команда sudo может выполнить только одну команду. Поэтому, чтобы сработало несколько последовательных команд, разделенных ";" надо под sudo запустить шелл sh, и уже в нем запускать нужную последовательность команд. Именно это и происходит в показанно выше команде. Опция -c принадлежит программе шелла sh, а не команде sudo.


Так же в этом разделе:
 
MyTetra Share v.0.67
Яндекс индекс цитирования