2

Я сделал такой скрипт:

sync.sh
#!/bin/bash
#1st backup the file
scp user-1@ip-1:/directory/file1 /backup/location/
#2nd sync/overwrite my file to that server
scp /local/file2 user-1@ip-1:/directory/file1
#3rd restart service associated with that file
ssh -t user-1@IP-1 << EOF
  sudo systemctl restart some.service
EOF

разрешение и привилегии скрипта следующие:

-rwxr-x--x. 1 user-1 group-1 ~/sync.sh

У меня настроены ssh-ключи от user-1@local до user-1@IP-1 , я настроил visudo для перезапуска службы, и все отлично работает, если я запускаю скрипт с использованием user-1 .

Я хочу, чтобы любой other_user в group-1 мог запускать этот скрипт, но ssh-ключ не работает таким образом, он пытается сгенерировать другой ключ. Чего мне не хватает, чтобы сделать это?

Или я должен использовать другой подход? Я видел, что я могу использовать rsync для перемещения файлов, но как насчет перезапуска службы?

Спасибо вам всем.

1 ответ1

0

Это не безопасный способ ведения дел.

Ключ - это то, что аутентифицирует пользователей.

  1. Дайте каждому пользователю свой собственный ключ, или каждый может просто войти под своим именем, просто используя другое имя пользователя.

  2. Измените ваш скрипт так, чтобы каждое имя пользователя выбиралось из переменной окружения.

  3. Используйте auth-agent для управления ключами. Таким образом, вам не нужно указывать пути к ключам в вашем скрипте.

  4. Много серверов и много пользователей?

    • Вероятно, вам стоит взглянуть на Kerberos и PAM.

    • Другой вариант - создать скрипт для добавления списка пользователей в файл sudoers и передать этот скрипт в оболочку суперпользователя на каждом сервере через ssh.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .