В настоящее время я пытаюсь выполнить резервное копирование с помощью rsync - и у меня возникла небольшая проблема. Я отключил root-доступ через SSH по соображениям безопасности и должен использовать свою специальную учетную запись (без разрешений sudo) всякий раз, когда я использую SSH для выполнения битов администратора. Затем я использую «su -», чтобы получить полный root-доступ, когда я использую SSHd, чтобы я мог иметь полный root-доступ и мог выполнять все специальные функции администратора. я раньше использовал следующее для резервного копирования с моего локального компьютера:
sudo rsync -rav root@MyServerIP:/ BackupFolder/
Однако с моими новыми мерами безопасности (невозможность использовать SSH с root) я не могу это использовать. А поскольку у моей специальной учетной записи нет прав sudo, я тоже не могу использовать его для rsync.
Как я могу запустить команду, которую я написал выше, после «su -» или другого трюка, чтобы у нее были разрешения на это? (Я могу ввести пароль root, чтобы получить root-доступ, однако root не может быть авторизован напрямую из SSH)
Ваши задания резервного копирования должны быть настроены как задания «push», а не «pull». Запустите задание резервного копирования через cron root на вашем сервере и дайте ему выполнить синхронизацию файлов с местом назначения резервного копирования.
Рекомендуется использовать аутентификацию по ssh-ключу с помощью rsync после установки "PermitRootLogin без пароля"в конфигурации ssh, чтобы разрешить root-доступ только через аутентификацию по ключу.
Просто добавляю как ответ, так как вы просили :)
Вы могли бы запустить rsync сервер на другом компьютере. Вы можете указать разрешенных пользователей.
Вы можете выполнить sudo на удаленном хосте, используя параметр --rsync-path. Что-то вроде этого:
rsync -rav --rsync-path='sudo rsync' root@MyServerIP:/ BackupFolder/
По сути, это заставляет rsync на удаленном компьютере запускаться от имени пользователя root.