Я хотів би запустити sudo зі своїм паролем як параметром, щоб я міг використовувати його для сценарію. я намагався
sudo -S mypassword execute_command
але без жодного успіху. Будь-які пропозиції?
Я хотів би запустити sudo зі своїм паролем як параметром, щоб я міг використовувати його для сценарію. я намагався
sudo -S mypassword execute_command
але без жодного успіху. Будь-які пропозиції?
sudoправильно налаштувати, щоб він не запитував пароль для певної програми / користувачів / групи, щоб уникнути таких брудних хаків.
Відповіді:
Перемикач -S змушує sudo читати пароль із STDIN. Це означає, що ви можете це зробити
echo mypassword | sudo -S command
передати пароль sudo
Однак пропозиції інших, які не передбачають передавання пароля як частини команди, наприклад, перевірки, чи є користувач root, - напевно, набагато кращі ідеї з міркувань безпеки
sudo chmod -R 0100 myScriptFolder:? Хіба це не вирішить проблеми безпеки (за умови, що ніхто не використовує ваш комп'ютер як root, крім вас)?
Ви можете встановити sбіт для вашого сценарію таким чином, щоб він не потребував sudoі виконувався як root (і вам не потрібно писати свій пароль root у скрипті):
sudo chmod +s myscript
+sце біт setuid. +tце липкий шматочок.
echo -e "YOURPASSWORD\n" | sudo -S yourcommand
echo -e "YOURPASSWORD\n" | sudo -S "run -x". Це говорить sudo: run -x: command not found. Будь-яка ідея, як це обійти?
Одним із варіантів є використання прапора -A для sudo. Це запускає програму для запиту пароля. Замість того, щоб запитувати, у вас може бути сценарій, який просто виписує пароль, щоб програма могла продовжувати.
# 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