Копирование всех данных сервера где запрещен доступ root, но есть доступ с правами sudo

HELP-ME-24.COM (Freelance Team), Черноусов Антон

Как известно авторизация на виртуальных машинах Amazon EC2 осуществляется по ключу и обязательно непривелигированным пользователем. Авторизация пользователем root запрещена, причем сделано это довольно хардкорно. Существует несколько способов обойти это ограничение, но последнее время эти методы не работают, да и честно говоря делать это не стоит, так как такие методы ломают совметимость с механизмами автоматизации Amazon (например с построением кластера).

Резервное копирование инстанса-амазона

Как известно самым простым способом "на горячую" слить данные с сервера с сохранением прав доступа и связок символических и жестких ссылок является использование механизма rsync с параметрами av (и исключением из резервного копирования служебных каталогов). Так как прямого доступа пользователя root с авторизацией по ключу у нас нет, а есть только непривелигированный пользователь который может выполнить sudo то, следовательно, задача rsync -av для корня сервера получается не такой уж и тривиальной, но вполне решаемой.

Обход ограничений на доступ root в Amazon для резервного копирования:

Для этого используйте следующую команду:

# rsync -av --rsync-path="sudo rsync" --exclude-from=../exclude.dat ubuntu@54.186.215.24:/ /opt/backup/

Вся соль здесь в опции sudo rsync и если пользователь имеет право использовать sudo без ввода пароля, то этот вариант сработает. Именно такой метод я сегодня вполне удачно опробовал на одном из проектов и еще в дополнение расскажу команду, которую можно использовать для получения списка установленных на сервере пакетов.

# apt list --installed | awk -F "/" '{ print $1 }' | awk '{ print $1 }' | tr "\n" ' '

В результате выполнения команды вы получите список установленных на сервере пакетов разделенных пробелом и этот список можно сразу передать apt-get install на другом сервере.

Оставьте комментарий

Вы должны быть вошедший в чтобы отправить комментарий