Problema de propiedad y permisos de Lsyncd 2.2.2

Problema de propiedad y permisos de Lsyncd 2.2.2

Tengo un problema donde los archivos se copian al servidor remoto, excepto que el propietario/grupo de archivos replicados en el servidor de destino siempre es '1002'. Los permisos del origen se respetan y replican correctamente en el destino. Simplemente no puedo encontrar una manera de preservar el propietario (y el grupo) de los archivos replicados.

Versión Lsyncd: 2.2.2

mi configuración a continuación:

settings {
    logfile = "/var/log/lsyncd/lsyncd.log",
    statusFile = "/var/log/lsyncd/lsyncd.status"
}

sync {
    default.rsyncssh,
    source="/home",
    host="1*52.*.15",
    targetdir="/home/",
    delete = "running", -- prevents deletion of files on startup (ie when a server comes back online, don't delete files that are new on the backup)
    delay = 5, -- run every 5 seconds instead of default 20
    exclude = {
        "/home/backup",
    },
    rsync = {
        archive = true, -- use the archive flag in rsync
        perms = true, -- Keep the permissions
        owner = true, -- Keep the owner
        compress = true,
        acls = true,
            xattrs = true,
        _extra = {"-a"}, -- Sometimes permissions and owners isn't copied correctly so the _extra can be used for any flag in rsync
    }
}

error de registro lsyncd:

Dec 15 21:42:47 server1.*.group lsyncd[21033]: sending incremental file list
Dec 15 21:42:47 server1.*.group lsyncd[21033]: rsync: failed to set times on "/home/admin/conf": Operation not permitted (1)
Dec 15 21:42:47 server1.*.group lsyncd[21033]: admin/conf/
Dec 15 21:42:47 server1.*.group lsyncd[21033]: sent 5,387 bytes  received 160 bytes  3,698.00 bytes/sec
Dec 15 21:42:47 server1.*.group lsyncd[21033]: total size is 2,849,404,839  speedup is 513,683.94
Dec 15 21:42:47 server1.*.group lsyncd[21033]: rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]

Respuesta1

Creo que el problema es que el uid/gid de los archivos del sistema local no se corresponde con el uid/gid de su sistema de destino.

Verifique los ID de usuario/grupo en el sistema local y cree el mismo usuario/grupo en el sistema de destino.

# On source system
$ ls -l /home/admin/conf
-rw-r--r--. 1 user1 user1 1.0K Jul 13  2018 /home/admin/conf

$ id user1
uid=1002(user1) gid=1002(user1) groups=1002(user1)

# On target system
$ useradd -u 1002 -g 1002 user1

Respuesta2

Cuando RSYNC transmite un archivo con propiedad reservada, transmite, no el nombre de usuario/nombre del grupo, sino el UID y el GID del propietario.

Entonces, su experiencia con el 1002 significa que ese UID no está en uso en el sistema de destino.

Puedes resolver esto de una de dos maneras:

  • Elimine el usuario anterior y vuelva a crearlo usando la configuración de UID en useradd. - Esta es probablemente la forma más limpia de hacerlo, ya que no tendrás que modificar ni modificar nada.
  • Actualice el UID y GID usando usermod. -- Si hace esto, necesitará editar los archivos en su directorio de inicio y podría experimentar otros efectos secundarios inesperados en otros archivos propiedad de ese usuario.

Elemento de lista

información relacionada