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 backups
y aunque hemos agregado este usuario a los grupos sudo
y admin
rsync 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 backups
permiso 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
,/dev
etc. , entonces se esperan errores.backups
asudo
yadmin
no cambiar nada./home/a/c/account/users/mail:username
que tienen permisosdrwx------
y son propiedad de ellosmail:4096
. ¿Supongo que porque el usuariobackups
está en el gruposudo
oadmin
no tiene acceso porque no hay permisos de acceso para los grupos? No sé, pero es un error en carpetas / archivos como ese.rsync
comando con sudo.Respuestas:
El simple hecho de agregar al usuario
backups
al grupo de usuariossudo
no otorga automáticamente a la cuenta acceso a todos los archivos del sistema. Le da al usuario el permiso para ejecutar elsudo
comando.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
ssh
permite restringir al usuario para que ejecute solo comandos muy específicos. En este caso, puede permitir que el usuariobackups
ejecutersync
con permisos de superusuario.Ya ha realizado el intercambio de claves y la autenticación verificada es exitosa. En el
authorized_keys
archivo en el host remoto desde el que está respaldando el/home
directorio, 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_keys
archivo hasta que funcione como esperas; puede tomar un poco para envolver su cerebro a su alrededor. El comando especificado en elauthorized_keys
básicamente anulará lasrsync
opciones 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/folder
para 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.conf
conuid=root
luego 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/lc
carpeta en el servidor remoto? ¿Cambio elpath
bit para/home
que 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 n
con 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!