Можно ли выполнить команду sudo с паролем администратора?
пример :
sudo apt-get update -password is 'root'
это поместить команду в приложение при запуске Ubuntu, которому нужен root-доступ
Если вы хотите, чтобы какой-то конкретный процесс запускался при запуске от имени пользователя root, я бы посоветовал вам обернуть его в скрипт systemd/init.d. Для systemd что-то вроде этого, вероятно, будет работать:
[Unit]
Description=Some command
[Service]
User=root
Type=oneshot
ExecStart=/usr/bin/whateverprogram and associated arguments
[Install]
WantedBy=multi-user.target
Хотя в приведенном выше примере я считаю, что директива User является излишней.
В качестве альтернативы, без реализации какого-либо инструмента управления секретами (см. Hashicorps vault, ansible имеет аналогичную функцию и т.д.), Вы практически застряли с двумя вариантами:
Создайте /etc/sudoers.d/somefile с записью для всех программ, которые будут запускаться с повышенными привилегиями без пароля. То есть.
ALL ALL=/usr/bin/theprogramtorun NOPASSWD
Или вы, если вам совсем не безразлична безопасность системы и ваш пользователь - sudoer, вы можете попробовать написать что-то вроде:
echo "thisisaterribleidea" | sudo -S /usr/bin/command
Чтобы передать пароль в виде открытого текста через командную строку
Ну, лучшая практика это:
echo "your password" | sudo --stdin command
Сначала будет выполнена команда, а затем введен пароль, введенный вами в операторе echo.