Я намагаюся запустити сценарій, який викликає інший сервер через SSH (через ключ Pub / Priv). Однак залежно від користувача (або, краще сказати, його членства в групі), який керує сценарієм через sudo, я хотів би викликати сценарій як користувач, який має відповідні ключі для доступу до сервера. Таким чином користувачі зможуть отримати доступ до віддаленого сервера, не маючи можливості бачити сам ключ.
Отже, двоє користувачів із відповідними групами:
- Джо: розгорнути_виробництво
- Джон: розгорнути_прийняття
Чи є спосіб, який:
- якщо Джо запускає скрипт через
sudo script
те, що сценарій запускається підdeploy_production
користувачем - якщо Джон запускає сценарій через
sudo script
те, що сценарій виконується підdeploy_acceptance
користувачем
Примітка. script
Потрібно використовувати лише білий список, щоб не дозволяти користувачам користуватися ключовими файлами sudo-cat'ing.
Примітка: я б краще не хотів використовувати -u <user>
параметр sudo.
Обґрунтування: це дозволить мені легко контролювати доступ, не вимагаючи клацання ssh-ключа кожного користувача на сервери, на яких вони дозволені. Отже, якщо я хочу видалити доступ до сервера для певного користувача, я би видалив його з однієї з груп. Якщо є кращий підхід, ніж запропонований нами варіант із використанням судо, будь ласка, поради.
script
що-небудь фантазійне, воно повинно залишатися агностиком до всього цього дозволу.
ps
та переглядати користувача батьківського піду поточного процесу?