LINUX.ORG.RU

Как заставить rofi запускать программы от рута?

 , ,


0

1

Пробовал rofi -modi drun,run -show drun -run-command «pkexec {cmd}» но оно не работает. Вычитал в инете, мол нельзя завершать процесс-родитель pkexec. Написал костыль на баше принимающий в качестве аргумента название проги и запускающий pkexec env bla bla $1, засунул в рофи и оно заработало, но только при запуске рофи в терминале, если забиндить рофи с костылем на кнопку в i3wm то опять ничего не работает, даже окно аутентификации не появляется. Я обыскал весь англоязычный и русскоязычный интернет и не нашел решения

i3wm почему то просто отказывается запускать bash скрипт, если в нем есть pkexec

mihalik35
() автор топика

Запуск утилиты от рута требует авторизации, т.е. ввода пароля. Если не зарегистрирован графический агент, а судя по i3wm rofi это так, то pkexec будет запрашивать ввод пароля в терминале, в котором запускается. При запуске из-под rofi доступа к терминалу у него, понятное дело, нет.

В качестве костыля могу предложить запускать эмулятор терминала с запущенной в ней твоей программой. Например, для xterm это должно выглядеть как-то так: xterm -e sh -c 'pkexec {cmd}.

Siborgium ★★★★★
()
Последнее исправление: Siborgium (всего исправлений: 1)
Ответ на: комментарий от Siborgium

В том то и дело, что я зарегистрировал графический агент, и если запускать pkexec через терминал то пароль запрашивает именно гномовский polkit, но если я запускаю pkexec через i3wm например, то ничего не происходит

mihalik35
() автор топика
Ответ на: комментарий от Siborgium

Причем, если в dmenu (dmenu_run) прописать pkexec [программа] то полкит запросит пароль и программа нормально откроется

mihalik35
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.