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