unison как не-root пользователь

unison как не-root пользователь

Я хочу использовать Unison для синхронизации каталогов /home между двумя устройствами EL6.

Большинство статей предполагают, что unison запущен как root и может подключаться по ssh между двумя ящиками как root. Однако мы отключили входы root как в /etc/passwd, так и в /etc/login.block. Подключение по ssh как root отключено в sshd_config.

Существует ли общепринятый и/или устоявшийся метод синхронизации чего-либо вроде /home без необходимости входа в систему с правами root?

У меня была одна мысль:

  1. настроить uid:gid unison:unison на обоих ящиках
  2. настроить пару ключей SSH для uid unison.
  3. настроить unison/.ssh/authorized_keys так, чтобы только unison можно было запустить с удаленного компьютера
  4. настроить acl на /home setfacl -R -md:g:unison:rwx,g:unison:rwx /home
  5. настройте cronjob так, чтобы он запускался как uid 'unison'.

но я надеюсь, что есть лучший, более общепринятый способ

Спасибо!

решение1

ЧтоЯ обычно делаюзаключается в создании ролевых аккаунтов.

  1. Создайте учетную запись роли (на самом деле просто еще одного пользователя, но у нас для этого зарезервировано пространство uid) — вероятно, то, что вы использовали сunison
  2. используйте ~unison/.ssh/authorized/keysс ограничивающим шаблоном, например `force-command="/usr/local/bin/unison-homesync.sh"
  3. писать/usr/local/bin/unison-homesync.sh
  4. используйте sudo для необходимых привилегированных действий

Плюсы:

  • Для входа в систему не требуется root-доступ.
  • sudo упрощает использование привилегированных действий
  • написание скрипта-обертки позволяет легко находиться в контролируемой среде

Минусы:

Подход не масштабируется хорошо, если выполняется вручную. Если есть какое-то управление конфигурацией, это не проблема.

Связанный контент