Saltar al contenido

Usando rsync con sudo en la máquina de destino

Solución:

En la máquina de destino

  1. Descubra el camino hacia rsync: which rsync
  2. Edite el /etc/sudoers expediente: sudo visudo (ver también: ¿debo usar visudo?)
  3. 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 utilizar sudo

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:

  1. Asegurarse ssh-askpass está instalado en el host remoto (y que está usando X-windows, por supuesto)
  2. Asegúrate de que esto esté en /etc/sudo.conf:
# Path to askpass helper program
Path askpass /usr/bin/ssh-askpass
  1. 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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *