Назад | Перейти на главную страницу

Использование Unison / rsync через SSH для синхронизации сайтов, где требуется полный доступ к файловой системе, но вход root отключен

Предположим, два сайта А и B с файловым сервером на обоих концах. Содержание /storage должны быть синхронизированы между сайтами с сохранением прав собственности и разрешений. Не существует всеобъемлющей группы, которая владеет всеми файлами в /storage. Если запущен Unison или rsync pid = 0, синхронизация выполняется тривиально. Однако SSH должен использоваться в качестве транспорта, и по очевидным причинам вход в систему SSH root был отключен на обоих концах.

Как мне сохранить синхронизацию A и B со всеми разрешениями, сохраненными в этой ситуации. Я могу придумать два метода:

Ответы на вопрос Удаленно использовать root через ssh для унисон Предлагаем включить root-вход с использованием pubkey без пароля через SSH - я не очень в восторге от этого решения.

Есть другие идеи?

Вход в систему с открытым ключом root через SSH, вероятно, ваш лучший выбор. Кроме того, вы можете ограничить этот доступ одним хостом:

AllowUsers root@192.0.2.123

Или даже использовать Match директива для получения уникальной конфигурации для заданного чего-либо (адреса, пользователя и т. д.):

Match Address 192.0.2.123
    PasswordAuthentication no
    RSAAuthentication yes
    PubkeyAuthentication yes
    PermitRootLogin yes

Как запустить удаленный экземпляр unison от имени root:

Удаленная сторона

  • не трогайте свою конфигурацию sshd, особенно не создавайте никаких специальная синхронизация [ssh] пользователь как вы указываете в своем вопросе

  • создать оболочку sudo vi sunison:

#!/data/data/com.termux/files/usr/bin/bash
su --preserve-environment -c `which unison` "$@"

(да, это для среды Termux, упростите под свои нужды)

Сторона клиента

  • работать в унисон с -servercmd sunison
  • или добавьте в свой профиль унисон servercmd = sunison

Ноты

  • что-то вроде servercmd = sudo unison было бы лучше, но у меня это не сработало