Если Ваш сценарий оболочки является ударом или sh, можно попытаться добавить -x
переключитесь на хижину и затем запустите скрипт. Обычно используемый для отладки сценариев оболочки это распечатает следующую строку / команда перед выполнением. Таким образом, если у Вас есть демонстрационный сценарий ниже этого журналы в файл logfile
#!/bin/bash -x
echo "Hello world!" >> logfile
echo "Second command!" >> logfile
И Вы запускаете скрипт как ./script 2>> logfile
файл журнала читал бы как:
+ echo 'Hello world!'
Hello world!
+ echo "Second command!"
Second command!
Нет. Лучшее, что вы можете сделать, это:
Последнее является рекомендуемой практикой. Напишите сценарий-оболочку, который делает именно то, что нужно сделать от имени пользователя root, желательно без ввода каких-либо пользовательских данных (например, из командной строки или env vars), и не более того. Если вам действительно нужно вводить данные для скрипта, убедитесь, что вы правильно указали все переменные и используете другие методы защитного программирования.
Из этого потока StackOverflow , похоже, есть флаг -S
, который сообщает sudo
читать пароль со стандартного ввода. Приведенный здесь пример:
echo myPassword | sudo -S ls /tmp
Однако не похоже, что есть какой-либо способ напрямую указать пароль в качестве аргумента sudo
.
Также необходимо учитывать последствия использования пароля для безопасности.