Я не можу повністю спробувати це, оскільки всі мої машини відключили root.
Щоб знайти, на якому відображенні відображається користувач, ви можете скористатися who
командою. Останній стовпець виводу, як правило, є ДИСПЛЕЙ, на якому користувач увійшов у систему. Щось подібне можна використати лише для відображення дисплея (мабуть, набагато ефективніший спосіб зробити це, не соромтеся пропонувати правки):
who | grep -m1 ^username.*\( | awk '{print $5}' | sed 's/[(|)]//g'
Потім запустіть графічну команду X на цьому дисплеї:
DISPLAY=:0 firefox &
де: 0 буде замінено будь-яким дисплеєм, який ви знайшли в першій команді, а firefox буде замінено будь-якою командою, яку ви хочете виконати. Ви можете помістити це в сценарій оболонки і просто використовувати змінну.
Наступна частина - це частина, яку я не перевіряв, але я не бачу, чому це зробити неможливо:
su username -c "DISPLAY=:0 firefox"
запустити команду X як цього користувача.
naga_plugged.pl
скрипт закінчився (або вийшов на другий план), тому щоudev
буде чекати його виходу.