Как использовать rsync, когда нужны привилегии root на удаленном хосте?

Так как пароли root и логины не разрешены в Ubuntu, как использовать ssh и rsync переместить папки и файлы с локального хоста на удаленный хост, если на удаленном компьютере требуются права суперпользователя?

2 ответа

Включение root-входа в Ubuntu невозможно, просто не рекомендуется. (см. этот ответ для практических рекомендаций)

В качестве альтернативы пользователю rsync может быть предоставлена ​​привилегия root (см. Здесь)

Один из способов сделать это состоит в том, чтобы на удаленном конце был пользователь, у которого есть пароль без доступа sudo к команде rsync. Если бы пользователь назывался rsyncguy, вы бы отредактировали /etc/sudoers файл, содержащий следующую строку, используя sudo visudo команда:

rsyncguy ALL=NOPASSWD: /usr/bin/rsync

При таком подходе существует угроза безопасности, при которой этот пользователь теперь может выполнять любую команду rsync от имени пользователя root, включая команды rsync pull с других серверов. Чтобы смягчить это, вы можете использовать точную команду rsync, которая вам понадобится, если она, вероятно, останется прежней.

После того, как доступ sudo был разрешен, ваши команды rsync должны всегда содержать `--rsync-path="sudo rsync", чтобы гарантировать, что sudo используется на удаленном конце.

Также было бы полезно установить для этого пользователя аутентификацию на основе пароля SSH без пароля. После того, как ключи SSH были настроены, вы можете отключить обычную регистрацию пароля для rsyncguy, используя следующую команду на удаленном сервере:

sudo passwd -l rsyncguy

Что добавит еще один уровень безопасности.

Другие вопросы по тегам