Як я можу передати Root Password скрипту


6

У моєму скрипті є пароль користувача root, і я хочу запустити інший скрипт, який вимагає дозволу root з цього сценарію. Як я можу скористатися паролем root, який у мене є, щоб мені не потрібно було запитувати у користувача пароль root, який запускає другий скрипт.


якщо це питання програмування, то чи не слід це робити на stackoverflow?
rzlines

@rzlines ,: Адміністративні сценарії bash насправді не 'програмування', це може бути краще підходить для ServerFault, або UnixSE ... але насправді це повинно бути дуже добре, де це.
J. M. Becker

Відповіді:


17

У цьому є багато наслідків для безпеки, але давайте отримаємо право на найкращий спосіб вирішити це.

Не використовуйте пароль root безпосередньо. Використовуйте sudo для запуску сценаріїв. Sudo встановлюється за замовчуванням на Ubuntu і доступний майже на всіх популярних дистрибутивах Linux у сховищах пакетів. Після встановлення sudo, ви хочете відредагувати / etc / sudoers.

su -
visudo
# add something like the following:
Cmnd_Alias SCRIPT=/path/to/script1
script_user ALL=NOPASSWD: SCRIPT

Таким чином script_user може запускати перший скрипт як root через sudo, який потім запускає інший скрипт як root. Для отримання додаткової інформації про файл sudoers див sudoers(5) на вашій системі.

Але чи повинні ваші сценарії абсолютно працювати як root? У більшості випадків це взагалі не потрібно, але це зроблено з зручності.


1
Ви не маєте на увазі script_user ALL=NOPASSWD: SCRIPT ?
grawity

@grawity спасибі, thats що я отримую для розміщення у 2am або щоб ні це було;)
jtimberman

Мені потрібно щось подібне, ви можете написати мені рішення, я не розумів, як це можна виконати правильно. Моє питання .
GarouDan

2

Іншим варіантом було б встановити suid на файл root. Приклад: chmod u+s script.sh як root так, коли звичайний користувач виконує скрипт, він запускається з дозволами файлу власника, коріньія.

Просто для власних знань, якщо ви не хочете встановлювати sudo для роботи без пароля, ви можете передати пароль sudo через stndin like echo PASSWORD|sudo -S ./script.sh

Однак це може викликати занепокоєння з точки зору безпеки, оскільки воно відображатиме пароль в історії або будь-кого, хто спостерігає за "ps". Ви також можете подивитися на Expect і Empty.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.