Подтвердить что ты не робот

Использовать sudo с паролем в качестве параметра

Я хотел бы запустить sudo с моим паролем в качестве параметра, чтобы я мог использовать его для script. Я попробовал

sudo -S mypassword execute_command

но без каких-либо успехов. Любые предложения?

4b9b3361

Ответ 1

Переключатель -S позволяет sudo считывать пароль из STDIN. Это означает, что вы можете сделать

echo mypassword | sudo -S command

передать пароль sudo

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

Ответ 2

Вы можете установить бит s для script, чтобы он не нуждался в sudo и выполнялся как root (и вам не нужно писать свой пароль root в script):

sudo chmod +s myscript

Ответ 3

echo -e "YOURPASSWORD\n" | sudo -S yourcommand

Ответ 4

Один из вариантов - использовать флаг -A для sudo. Это запускает программу для запроса пароля. Вместо того, чтобы спрашивать, у вас может быть script, который просто выплевывает пароль, чтобы программа могла продолжить.

Ответ 5

# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi