Problemas con el comando Rsync, los permisos de propietario y grupo no cambian

Problemas con el comando Rsync, los permisos de propietario y grupo no cambian

Estoy intentando establecer la vía del propietario y del grupo rsyncy no parece funcionar.

Este es el comando:

sudo rsync -rlptDvz --owner=cmsseren --group=cmsseren /home/serena/public_html/ -e ssh root@ip:/home/cmsseren/public_html2/

Los archivos se sincronizan correctamente pero no parecen cambiar de propietario ni de grupo.

Respuesta1

Parece que está funcionando correctamente. Usar --ownery --groupparapreservar(no establecido) los nombres del propietario y del grupo... lo que significa que no desea que cambien después de la transferencia.

Si no utiliza estas opciones, el usuario y el grupo se cambiarán al usuario que invoca en el extremo receptor. Si desea especificar algún otro usuario, deberá agregar un chowncomando a su secuencia de comandos.

-o, --owner
    This option causes rsync to set the owner of the destination file to be 
    the same as  the source file, but only if the receiving rsync is being run 
    as the super-user (see also the --super and --fake-super options). Without 
    this option, the owner of new and/or transferred files are set to the invoking 
    user on the receiving side...

-g, --group
    This option causes rsync to set the group of the destination file to be the same as 
    the source file. If the receiving program is not running as the super-user (or if
    --no-super was specified), only groups that the invoking user on the receiving side
    is a member of will be preserved. Without this option, the group is set to the default
    group of the invoking user on the receiving side...

hombre rsync

Respuesta2

Versión 3.1.0de rsync introdujo lo --usermapmencionado --groupmappor Thomas, pero también la opción de conveniencia--chown, que funciona bien para su escenario.

--chown=USER:GROUP
    This option forces all files to be owned by USER with group GROUP.
    This  is  a  simpler  interface  than  using  --usermap  and  --groupmap directly,
    but  it  is implemented using those options internally, so you cannot mix them.
    If either the USER or GROUP is empty, no mapping for the omitted user/group will
    occur.  If GROUP is empty, the trailing colon may be omitted, but if USER is
    empty, a leading colon must  be supplied.

    If you specify "--chown=foo:bar, this is exactly the same as specifying
    "--usermap=*:foo --groupmap=*:bar", only easier.

También el-oy-gSe requieren opciones. Excluirlos no actualizará su atributo respectivo, pero no producirá ningún error.

rsync -og --chown=cmsseren:cmsseren [src] [dest]

Esto se menciona indirectamente en elpágina de manual, que establece que la --chownopción "se implementa utilizando --usermape --groupmapinternamente", y:

Para que la --usermapopción tenga algún efecto, se debe utilizar (o implicar) la opción -o( --owner) y el receptor deberá estar ejecutándose como superusuario (consulte también la --fake-superopción).

Para que la --groupmapopción tenga algún efecto, se debe usar (o implicar) la opción -g( --groups) y el receptor deberá tener permisos para configurar ese grupo.

Respuesta3

La última versión (al menos 3.1.1) de rsync le permite especificar la "propiedad remota":

--usermap=tom:www-data

Cambia la propiedad del tom a www-data (también conocido como PHP/Nginx). Si utiliza Mac como cliente, utilice Brew para actualizar a la última versión. Y en su servidor, descargue fuentes de archivos y luego "hazlo".

Respuesta4

Asunto.La copia de seguridad de archivos y directorios remotos desde un VPS en la nube a través rsyncde SSH no mantenía owner:grouplas propiedades remotas en el host local.

Solución.

  1. Cree usuarios en el host local para archivos (directorios, etc.) sincronizados desde el host remoto.
  2. Ejecute el comando del host local rsynccomo root/ sudo.
  3. Tendrá que proporcionar manualmente la contraseña de root y la frase de contraseña SSH.
# create local host system user(s) for those on remote host; see:
# https://wiki.archlinux.org/title/Users_and_groups#Example_adding_a_system_user

sudo rsync -aqP  -e "ssh -p 4321  \                   ## SSH port
    -i /home/victoria/.ssh/my-vps/id_rsa"  \          ## SSH credentials
    [email protected]_isp.com:/etc/default/solr.in.sh   ## rsync SRC (remote host)
    /<my home path>/backups/solr.in.sh  \             ## rsync DEST (local host)

Pruebas.

# -----------------------------------------------------------------------------
# REMOTE HOST (cloud VPS):

[me@vps1234]$ ls -l /etc/default/

  ...
  -rw-r----- 1 root solr 15079 Aug 12 20:35 solr.in.sh    ## ownership: root:solr
  ...

[me@vps1234]$ 

# -----------------------------------------------------------------------------
# LOCAL HOST:

The basic command for testing (with variations, following) is:

```bash
rm -f solr.in.sh;  \
rsync -aqP  \
    --rsync-path="sudo /bin/rsync"  \
    -e "ssh -p 4321  \
    -i /home/victoria/.ssh/my-vps/id_rsa"  \
    [email protected]_isp.com:/etc/default/solr.in.sh
    /<my home path>/backups/solr.in.sh;  \
ls -l solr.in.sh
# -----------------------------------------------------------------------------
# [TEST 1] rsync --rsync-path...

[victoria]$ rm -f solr.in.sh;  \
    rsync -aqP --rsync-path="sudo /bin/rsync"  \
      -e "ssh -p 4321 -i /home/victoria/.ssh/my-vps/id_rsa"  \
      [email protected]_isp.com:/etc/default/solr.in.sh  \
      /<my home path>/backups/solr.in.sh;  \
    ls -l solr.in.sh 

  -rw-r----- 1 victoria victoria 15079 Aug 12 20:35 solr.in.sh
            ## victoria victoria [incorrect]

[victoria]$
# -----------------------------------------------------------------------------
# [TEST 2] sudo rsync --rsync-path ; user "solr" not on local host so remote files
# in group "solr" renamed "git" on local host; tried rsync -og options: no effect

[victoria]$ rm -f solr.in.sh;  \
    sudo rsync -aqP --rsync-path="/usr/bin/rsync"  \
      -e "ssh -p 4321 -i /home/victoria/.ssh/my-vps/id_rsa"  \
      [email protected]_isp.com:/etc/default/solr.in.sh  \
    /<my home path>/backups/solr.in.sh;  \
    ls -l solr.in.sh 

  [sudo] password for victoria: 
  Enter passphrase for key '/home/victoria/.ssh/my-vps/id_rsa': 

  -rw-r----- 1 root git 15079 Aug 12 20:35 solr.in.sh
            ## root:git [incorrect]

[victoria]$
# -----------------------------------------------------------------------------
# [CONFIGURE USERS]
# local host:

[victoria]$ cat /etc/passwd | grep solr     ## no such user
[victoria]$

# Create local host system user, for user on remote host:

[victoria@victoria backups]$ sudo useradd -r -s /usr/bin/nologin solr
  [sudo] password for victoria: 

[victoria]$ cat /etc/passwd | grep solr

  solr:x:980:980::/home/solr:/usr/bin/nologin

[victoria]$ ls -l /home/     ## check: useradd did not create /home/solr/

  total 52
  drwx------   2 root     root     16384 Mar  6  2015 lost+found
  drwxrwxr-x 178 victoria victoria 36864 Aug 13 10:09 victoria

[victoria]$
# -----------------------------------------------------------------------------
# [TEST 3: works] sudo --rsync-path...

[victoria]$ rm -f solr.in.sh;  \
    sudo rsync -aqP --rsync-path="/bin/rsync"  \
      -e "ssh -p 4321 -i /home/victoria/.ssh/my-vps/id_rsa"  \
      [email protected]_isp.com:/etc/default/solr.in.sh  \
      /<my home path>/backups/solr.in.sh;  \
    ls -l solr.in.sh 

  [sudo] password for victoria: 
  Enter passphrase for key '/home/victoria/.ssh/my-vps/id_rsa': 

  -rw-r----- 1 root solr 15079 Aug 12 20:35 solr.in.sh
            ## root:solr [correct]

[victoria]$
# -----------------------------------------------------------------------------
# [TEST 4: works] No need for --rsync-path option:

[victoria@victoria backups]$ rm -f solr.in.sh;  \
    sudo rsync -aqP -e  \
      "ssh -p 4321 -i /home/victoria/.ssh/my-vps/id_rsa"  \
      [email protected]_isp.com:/etc/default/solr.in.sh  \
      /<my home path>/backups/solr.in.sh;  \
    ls -l solr.in.sh

  [sudo] password for victoria:
  Enter passphrase for key '/home/victoria/.ssh/my-vps/id_rsa':

  -rw-r----- 1 root solr 15079 Aug 12 20:35 solr.in.sh
            ## root:solr [correct]

[victoria@victoria backups]$

# -----------------------------------------------------------------------------

información relacionada