Встановіть HISTIGNORE на " sudo -S "
$ export HISTIGNORE='*sudo -S*'
Потім сміливо передайте свій пароль sudo:
$ echo "your_password" | sudo -S -k <command>
"HISTIGNORE" означає не зберігати цю команду в історії. Це історія в пам'яті або файл "~ / .bash_history".
Наприклад, нижче наведені вами безпечно передадуть ваш пароль команді sudo, не зберігаючи історію вашого пароля.
"-S", означає використовувати stdin для пароля,
"-K" означає ігнорувати кешовані облікові дані, щоб змусити sudo завжди запитувати. Це для послідовної поведінки.
$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -k whoami
$ echo "<your_password>" | sudo -S -k cat /etc/shadow
$ echo "<your_password>" | sudo -S -k bash /tmp/myscript.sh
Мінус вищевказаного методу полягає в тому, що якщо ви хочете побачити команди, які ви запустили в історію, пізніше їх не буде. Інший метод - оновити кеш даних облікових даних автентифікації sudo (за замовчуванням увімкнено 5-хвилинний час очікування), після чого запустіть sudo окремо. Але недоліком цього є те, що вам потрібно знати про 5-хвилинний кеш.
Наприклад:
$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -v
$ sudo whoami
$ echo "<your_password>" | sudo -S -v
$ sudo cat /etc/shadow
$ echo "<your_password>" | sudo -S -v
$ sudo /tmp/myscript.sh
Примітка. Я запускав судо перед кожною командою, щоб гарантувати оновлення кешу sudo, оскільки за замовчуванням 5 хвилин. Так, whoami не повинен зайняти 5 хвилин, але я думаю, що він також може запустити його перед кожною командою для послідовності. Ви також можете поставити "export HISTIGNORE = ' sudo -S'"у вашому файлі ~ / .bashrc, а потім завантажте його". ~ / .bashrc "або вихід із системи, потім увійдіть. Однак, я думаю, використовую це для сценаріїв, тому буду тримати його у верхній частині всіх моїх сценаріїв для найкращих практик безпеки. Налаштування" echo "" | sudo -S -v "для змінної замість цього також може бути хорошою ідеєю, тоді просто запустіть змінну перед кожною командою, яка потребує кореневих привілеїв, дивіться коментар Джанара. Коментар Джона Т" також повинен містити параметр "-k" , якщо ви запускаєте "sudo -S" без "-k", а кеш автентифікації sudo вже має ваші облікові дані (і досі діє, кеш аутентифікації sudo за замовчуванням становить 5 хвилин), тоді bash запустить ваш пароль як команду, яка є поганий.
halt
запустити як root.