Solución:
En la máquina de destino
- Descubra el camino hacia
rsync
:which rsync
- Edite el
/etc/sudoers
expediente:sudo visudo
(ver también: ¿debo usar visudo?) - Agrega la línea
<username> ALL=NOPASSWD:<path to rsync>
, dónde nombre de usuario es el nombre de inicio de sesión del usuario que utilizará rsync para iniciar sesión. Ese usuario debe poder utilizarsudo
Luego, en la máquina de origen, especifique que sudo rsync
deberia ser usado:
rsync ... --rsync-path="sudo rsync" ...
Usándolo sin el NOPASSWD
en la máquina de destino resultará en el mensaje
sudo: no hay tty presente y no se ha especificado ningún programa askpass
Mi solución es usar --rsync-path="sudo rsync"
, si solicita una contraseña, puede utilizar una solución alternativa como esta:
rsync -avz --stats --rsync-path="echo <SUDOPASS> | sudo -Sv && sudo rsync" [email protected]:/ .
Pero esto no es seguro para poner una contraseña en la línea de comandos.
Puede hacer que el sudo remoto le pida su contraseña a través de X-windows. He aquí una forma de hacerlo:
- Asegurarse
ssh-askpass
está instalado en el host remoto (y que está usando X-windows, por supuesto) - Asegúrate de que esto esté en
/etc/sudo.conf
:
# Path to askpass helper program
Path askpass /usr/bin/ssh-askpass
-
Agregue estas opciones a rsync:
-e "ssh -X" --rsync-path="sudo -A rsync"
-
ssh -X
reenviará la información y el puerto de X-windows a su sesión remota -
sudo -A
hará que sudo use ssh-askpass para pedirle su contraseña
-
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)