LINUX.ORG.RU

Arch + su-to-root, есть аналоги?

 , , ,


0

1

В debian есть такая штука под названием menu. Которая позволяет запускать любую шнягу с провами root по команде

$ exec su-to-root -X -c имя_шняги
при этом она выводит перед запуском штатный терминал с предложением ввести пароль root, очень удобно назначить на сочитание горячих в i3 - типа как то так
bindsym $mod+Shift+F1 exec su-to-root -X -c x-terminal-emulator -e sh -c /usr/bin/top
и тогда top получит права грохнуть что угодно... процесс можно упростить донельзя забив на грячие
bindsym $mod+Shift+F1 exec su-to-root -X -c x-terminal-emulator -e sh -c /usr/bin/xkill
и после ввода пароля root - валить с курсора любые гуи... да что тут говорить это можно прилепить куда угодно
bindsym $mod+Shift+F1 exec su-to-root -X -c x-terminal-emulator -e sh -c /usr/bin/mc
и на выходе получаем mc который может шарить и править конфиги любого уровня... чего греха таить - у меня даже стоп\перезагрузка на этом держутся
bindsym $mod+Delete exec su-to-root -X -c x-terminal-emulator -e sh -c "systemctl reboot"
bindsym $mod+Shift+Delete exec su-to-root -X -c x-terminal-emulator -e sh -c "systemctl poweroff"
и вот приперло arch поставить - прикрутил i3, но без menu испытываю неудобства... подскажите есть ли в arch аналоги menu - может оно как по другому называется или научите как на горячие прикручивать запуск с правами root без menu?

★★★

А разве xterm (или любой другой терминал) -e 'sudo command' не то же самое?

Kron4ek ★★★★ ()
Последнее исправление: Kron4ek (всего исправлений: 1)

самому на пайтоне написать с помощью pexpect

butt = "vlc"
child = pexpect.spawn('sudo apt-get install ' + butt)
child.logfile = sys.stdout
child.expect_exact('[sudo] password for user1: ')
child.sendline('mypassword')

приглашение только скопипастить в точности то, что на твоей ситсеме, команду брать из первого параметра, и погуглить как в питоне считать пароль чтобы отдать в sendline

но можно положить пароль в passwords.txt, и считывать его в sendline

stevejobs ★★★★☆ ()
Последнее исправление: stevejobs (всего исправлений: 1)

а еще можно в /etc/sudoers вписать

amd_amd ALL=(ALL:ALL) NOPASSWD:ALL

и больше никогда не мучиться фигней

stevejobs ★★★★☆ ()
Ответ на: комментарий от stevejobs

и больше никогда не мучиться фигней

тогда объясните чем это поможет и приведите пример строки в конфиге для запуска mc с правами root

amd_amd ★★★ ()
Ответ на: комментарий от amd_amd

Пишешь «sudo mc» и mc запускается без всяких паролей под рутом. Как и любая другая программа. Строчка в конфиге sudoers приведена выше.

Всегда так делаю у себя на десктопе, кстати.

stevejobs ★★★★☆ ()
Ответ на: комментарий от stevejobs

но можно положить пароль в passwords.txt, и считывать его в sendline

а еще можно в /etc/sudoers вписать
amd_amd ALL=(ALL:ALL) NOPASSWD:ALL

Ты от root'а забыл еще предложить сидеть. Чтобы уже совсем с концами.

Deleted ()
Ответ на: комментарий от flappyright

gksu?

выпилено из репы - собрал из aur, вроде работает - спасибо за наводку...

amd_amd ★★★ ()
Ответ на: комментарий от Deleted

Можно и из-под рута сидеть. Хотя так можно нечаянно удалить что-нибудь ненужное, а подпись sudo в первую очередь намекает тебе самому, что сейчас что-то произойдет такое

stevejobs ★★★★☆ ()
Ответ на: комментарий от stevejobs

Пишешь «sudo mc»

не взлетает - можно полный пример строки в конфиге

bindsym $mod+...bla-bla-bla..."sudo mc"
и что бы root права были ибо права root и sudo это разные вещи - мне файло в /sys/devices/system/cpu/cpufreq редактировать...

amd_amd ★★★ ()
Ответ на: комментарий от Anoxemian

su -Ic «mc»

это вообще не пойму куда - нужен конкретный пример строки для конфига...

amd_amd ★★★ ()
Ответ на: комментарий от flappyright

gksu?

работает да не очень - имеет права root с этим проблем нет, но конфиги запускаемых программ из папки root тянет, я только сейчас начинаю понимать уникальность su-to-root которое имеет root права и работает с конфигами из домашней директории... ну ничего конфиги подправлю - арчу жирный минус за столь нужное упущение, куда писать что бы menu пилили - даже в aur нет ничего подобного...

amd_amd ★★★ ()
Ответ на: комментарий от Kron4ek

вот спасибо помогли - конечный вариант выглядит так

bindsym $mod+Shift+F1 exec x-terminal-emulator -e sh -c 'sudo /usr/bin/top'
но конфиги все равно из папки root тянет - не страшно подправлю...

amd_amd ★★★ ()

в арче есть systemd, а в systemd есть команда machinectl shell

anonymous ()
Ответ на: комментарий от anonymous

machinectl shell

очень интересная команда - похожа на su только тянет дефолтный конфиг bash.bashrc... самое то что надо - потому что решение

bindsym $mod+Shift+F1 exec x-terminal-emulator -e sh -c 'sudo /usr/bin/top'
все таки не обладает полноценными root правами, только как прикрутить?
bindsym $mod+Shift+F1 exec x-terminal-emulator -e sh -c 'machinectl shell /usr/bin/top'
не взлетело...

amd_amd ★★★ ()
Ответ на: комментарий от Deleted

Ты от root'а забыл еще предложить сидеть. Чтобы уже совсем с концами.

автор и так от рута mc запускает, куда ниже-то?

MyTrooName ★★★★★ ()
Ответ на: комментарий от amd_amd

попробуй так:

bindsym $mod+Shift+F1 exec x-terminal-emulator -e machinectl shell .host /usr/bin/top
в доках еще советуется systemd-run:
bindsym $mod+Shift+F1 exec x-terminal-emulator -e systemd-run --pty /usr/bin/top

anonymous ()
Ответ на: комментарий от stevejobs

приглашение только скопипастить в точности то, что на твоей ситсеме

-p prompt, --prompt=prompt
                 Use a custom password prompt with optional escape sequences.  The following percent (‘%’) escape sequences are supported by the sudoers
                 policy:

                 %H  expanded to the host name including the domain name (on if the machine's host name is fully qualified or the fqdn option is set in
                     sudoers(5))

                 %h  expanded to the local host name without the domain name

                 %p  expanded to the name of the user whose password is being requested (respects the rootpw, targetpw, and runaspw flags in sudoers(5))

                 %U  expanded to the login name of the user the command will be run as (defaults to root unless the -u option is also specified)

                 %u  expanded to the invoking user's login name

                 %%  two consecutive ‘%’ characters are collapsed into a single ‘%’ character

                 The custom prompt will override the default prompt specified by either the security policy or the SUDO_PROMPT environment variable.  On
                 systems that use PAM, the custom prompt will also override the prompt specified by a PAM module unless the passprompt_override flag is
                 disabled in sudoers.
SR_team ★★★★ ()
Ответ на: комментарий от amd_amd

имеет root права и работает с конфигами из домашней директории

А оно не права на конфиги при их перезаписи не портит?

SR_team ★★★★ ()
Ответ на: комментарий от amd_amd

права root и sudo это разные вещи

sudo позволяет запустить одну команду из-под другого пользователя, по умолчанию из-под root'а, если не указано что-то иное в опции -u, поэтому в данном случае это одно и то же.

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