
Я пытаюсь использовать 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
пи, попробуйте следующий подход:
Упакуйте все файлы (файлы,
/etc
как правило, небольшие, поэтому упаковать все не составит труда):tar -czC /etc apache2 | ssh [email protected] 'cat > /tmp/apache2.tar.gz'
Распакуйте все файлы на pi:
sudo tar -xzf /tmp/apache2.tar.gz -C /etc
Существует третий вариант, который подразумевает настройку демона rsync, но это требует больше усилий и может быть менее безопасным, поскольку сетевой протокол не зашифрован и может предоставить доступ любому, кто сможет подключиться к демону.