Как ввести пароль sudo, если в одной консоли bash несколько команд - PullRequest
0 голосов
/ 23 мая 2019

Я хотел запустить скрипт Python и затем полностью выключить компьютер. Через некоторое время я увидел экран, на котором sudo попросил у меня пароль, что означает, что Мой компьютер был включен на несколько дней точно так же. Я попробовал это, но это не сработало:

sudo ls
python3 test.py && sudo shutdown now

Так как мне запустить sudo с паролем в одной командной строке? Спасибо за любую помощь.

Ответы [ 3 ]

2 голосов
/ 23 мая 2019

Вы можете отменить его и явно выполнить скрипт от имени обычного пользователя

sudo sh -c 'sudo -u $SUDO_USER test.py && shutdown now'
1 голос
/ 23 мая 2019

sudo можно настроить для кэширования вашего пароля;но простое и надежное решение - sudo всей командной строки.

sudo sh -c ' ls; 
    python3 test.py && shutdown now'

Обратите внимание, что при этом также будет запускаться python3 от имени пользователя root.Как правило, вы хотите минимизировать привилегии для каждой команды.Конечно, если у вас есть права, вы можете использовать su для запуска Python в качестве обычного пользователя из привилегированного контекста.

0 голосов
/ 23 мая 2019

Я нашел решение здесь: https://superuser.com/a/67766

$echo <password> | sudo -S <command>

Просто используйте трубу и ключ -S, для меня это выглядит так:

python3 test.py && echo <password> | sudo -S shutdown now
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...