
Я хочу использовать Unison для синхронизации каталогов /home между двумя устройствами EL6.
Большинство статей предполагают, что unison запущен как root и может подключаться по ssh между двумя ящиками как root. Однако мы отключили входы root как в /etc/passwd, так и в /etc/login.block. Подключение по ssh как root отключено в sshd_config.
Существует ли общепринятый и/или устоявшийся метод синхронизации чего-либо вроде /home без необходимости входа в систему с правами root?
У меня была одна мысль:
- настроить uid:gid unison:unison на обоих ящиках
- настроить пару ключей SSH для uid unison.
- настроить unison/.ssh/authorized_keys так, чтобы только unison можно было запустить с удаленного компьютера
- настроить acl на /home setfacl -R -md:g:unison:rwx,g:unison:rwx /home
- настройте cronjob так, чтобы он запускался как uid 'unison'.
но я надеюсь, что есть лучший, более общепринятый способ
Спасибо!
решение1
ЧтоЯ обычно делаюзаключается в создании ролевых аккаунтов.
- Создайте учетную запись роли (на самом деле просто еще одного пользователя, но у нас для этого зарезервировано пространство uid) — вероятно, то, что вы использовали с
unison
- используйте
~unison/.ssh/authorized/keys
с ограничивающим шаблоном, например `force-command="/usr/local/bin/unison-homesync.sh" - писать
/usr/local/bin/unison-homesync.sh
- используйте sudo для необходимых привилегированных действий
Плюсы:
- Для входа в систему не требуется root-доступ.
- sudo упрощает использование привилегированных действий
- написание скрипта-обертки позволяет легко находиться в контролируемой среде
Минусы:
Подход не масштабируется хорошо, если выполняется вручную. Если есть какое-то управление конфигурацией, это не проблема.