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