Quiero tener un usuario que tenga acceso a todos los archivos y carpetas del sistema. Esto es con el propósito de usar RSYNC en una máquina local para hacer una copia de seguridad de una máquina remota.
En este momento estamos usando al usuario backupsy aunque hemos agregado este usuario a los grupos sudoy adminrsync aún devuelve mensajes como:
rsync: opendir "/ location / to / folder" falló: Permiso denegado (13)
rsync: send_files no pudo abrir "/ location / to / file": Permiso denegado (13)
Alguna idea de cómo le damos backupspermiso al usuario para acceder a todo (salvo agregar al usuario a todos los grupos), el servidor remoto que estamos tratando de respaldar es un servidor de alojamiento dedicado donde cada cuenta tiene su propio usuario en el sistema).
Gracias por cualquier ayuda.
fuente

/proc,/devetc. , entonces se esperan errores.backupsasudoyadminno cambiar nada./home/a/c/account/users/mail:usernameque tienen permisosdrwx------y son propiedad de ellosmail:4096. ¿Supongo que porque el usuariobackupsestá en el gruposudooadminno tiene acceso porque no hay permisos de acceso para los grupos? No sé, pero es un error en carpetas / archivos como ese.rsynccomando con sudo.Respuestas:
El simple hecho de agregar al usuario
backupsal grupo de usuariossudono otorga automáticamente a la cuenta acceso a todos los archivos del sistema. Le da al usuario el permiso para ejecutar elsudocomando.Como está utilizando la autenticación de clave pública (presumiblemente sin una frase de contraseña), abordaría esto con la seguridad y la facilidad de implementación en mente. El uso le
sshpermite restringir al usuario para que ejecute solo comandos muy específicos. En este caso, puede permitir que el usuariobackupsejecutersynccon permisos de superusuario.Ya ha realizado el intercambio de claves y la autenticación verificada es exitosa. En el
authorized_keysarchivo en el host remoto desde el que está respaldando el/homedirectorio, puede agregar unacommand=directiva a la clave que utiliza el usuariobackups. Esta directiva solo permitirá que ese comando se ejecute cuando esa clave se use para la autenticación. Entonces, el primer campo de la clave sería similar a esto:Puede ir aún más lejos y agregar más opciones a la clave, como
from=myhost,no-pty,no-X11-forwarding.Esto debería brindarle una seguridad decente y no requerir que modifique los permisos subyacentes del sistema de archivos. Probablemente necesitarás jugar con el comando que colocas en el
authorized_keysarchivo hasta que funcione como esperas; puede tomar un poco para envolver su cerebro a su alrededor. El comando especificado en elauthorized_keysbásicamente anulará lasrsyncopciones que pasará desde el host de conexión.Mucha buena información en
man sshd. Desea leer específicamente la sección FORMATO AUTHORIZED_KEYS.fuente
rsync -e ssh -az [email protected]:/home /location/of/local/folderpara indicarle que se ejecute como superusuario en la máquina remota? ¿O lo hará automáticamente? Gracias por tu tiempo y ayuda. :)Una opción es ejecutar un servidor rsync en el sistema remoto.
Básicamente, cree un
rsync.confconuid=rootluego usersync -az rsync://domain.com.Consulte http://pastebin.com/5hQx1mRV para ver un ejemplo que alguien más escribió y Configuración del daemon rsync para conocer algunos conceptos básicos sobre cómo habilitar un servidor en Ubuntu.
Tenga en cuenta que debe tener en cuenta la seguridad de esto. Probablemente, un mejor enfoque es hacer que el sistema remoto empuje a su sistema local.
fuente
/backup/lccarpeta en el servidor remoto? ¿Cambio elpathbit para/homeque eso funcione?Tal vez podría usar ACL si el sistema de archivos subyacente lo admite.
Debe agregar la copia de seguridad de grupo en la ACL de cada archivo y directorio. Pero para agregarse automáticamente para el archivo y el directorio recién creados, primero debe establecer la ACL predeterminada en todos los directorios existentes. Entonces en el servidor remoto:
Entonces debe tener permiso de rx para todos los directorios existentes y leer para archivos. Puede hacer esto con 2 comandos (sin el -d esta vez)
Esto le dará un permiso adicional para leer los archivos en la copia de seguridad del grupo sin cambiar el usuario y el grupo existentes que poseen cada archivo.
Nota: para acelerar el hallazgo | comando xargs puede agregar la siguiente opción al comando xargs:
-P ncon n el número de procesos paralelos. Puede configurarlo en la cantidad de CPU que tiene en su máquina + 1.fuente
sudo setfacl -Rm d:group:backup:r-X,group:backup:r-X /home:) ¡mucho más simple!