Как аутентифицировать себя как пользователя root через rsync+ssh на удаленном сервере?

Как аутентифицировать себя как пользователя root через rsync+ssh на удаленном сервере?

Я пытаюсь использовать rsyncкоманду, но получаю сообщение «Отказано в доступе», поскольку у пользователя pi нет разрешения на запись без команды sudo.

Я пытаюсь переместить папку apache2 из 10.0.2.2 в[email protected]с

sudo rsync -av /etc/apache2 [email protected]:/etc/

Итак, главный вопрос в том, есть ли возможность предоставить rsync команду sudo для пользователя pi? или что-то еще, не предоставляя пользователю pi полный доступ.

решение1

Уважаемый пользователь, поставивший отрицательный отзыв, целью является Raspberry Pi, поэтому у нас есть пользователь root.


Вы можете использовать rootпользователя вместо pi. Но прежде вам понадобится пароль для rootпользователя.

Откройте ssh-соединение.

ssh [email protected]

И установите rootпароль.

sudo su -
passwd

Теперь вы можете использовать

rsync -av /etc/apache2 [email protected]:/etc/

решение2

Самый простой способ при наличии root-доступа:

rsync -av /etc/apache2 [email protected]:/etc/

Примечание: в этом нет необходимости, sudo rsyncесли все файлы конфигурации /etc/apache2доступны для чтения всем пользователям.

Если вы не против дополнительных интерактивных команд, включающих sudoпи, попробуйте следующий подход:

  1. Упакуйте все файлы (файлы, /etcкак правило, небольшие, поэтому упаковать все не составит труда):

    tar -czC /etc apache2 | ssh [email protected] 'cat > /tmp/apache2.tar.gz'
    
  2. Распакуйте все файлы на pi:

    sudo tar -xzf /tmp/apache2.tar.gz -C /etc
    

Существует третий вариант, который подразумевает настройку демона rsync, но это требует больше усилий и может быть менее безопасным, поскольку сетевой протокол не зашифрован и может предоставить доступ любому, кто сможет подключиться к демону.

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