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


28

Estoy tratando de establecer el propietario y el grupo a través rsyncy no parece estar funcionando.

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 parece cambiar el propietario y el grupo.

Respuestas:


14

Parece que funciona correctamente. Use --ownery --grouppara preservar (no establecer) los nombres de propietario y 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...

man rsync


1
Entonces, ¿cómo puedo seleccionar usuarios y grupos de forma remota? ¿Via ssh? ¿Podrías decirme cómo? Tengo acceso root para ambos servidores. No quiero usar las teclas ssh, pero dime todas las opciones que conozcas, te lo agradeceré. Gracias por su rápida respuesta
Arnoldo Bazaldua

El comando se vería así: ssh root@ip 'chown -R cmsseren:cmsseren /home/serena/public_html2/*'
user3150166

Lo intenté, pero no funcionó, los propietarios y los usuarios son iguales. Después de hacer el comando dice: stdin: no es un tty
Arnoldo Bazaldua

Funciona ahora, problemas de firewall. Ahora solo tengo que automatizar la entrada de contraseña para ssh y rsync
Arnoldo Bazaldua

Publicaré esto en otra pregunta, gracias por su ayuda
Arnoldo Bazaldua

61

La versión 3.1.0 de rsync introdujo la --usermapy --groupmapmencionada por 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.

Además, se requieren las opciones -oy -g. Excluirlos no podrá actualizar sus respectivos atributos, pero no producirá ningún error.

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

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

Para que la --usermapopción tenga algún efecto, la opción -o( --owner) debe ser utilizada (o implícita), y el receptor deberá estar funcionando como un superusuario (ver también la --fake-superopción).

Para que la --groupmapopción tenga algún efecto, la opción -g( --groups) debe ser utilizada (o implícita), y el receptor necesitará tener permisos para establecer ese grupo.


55
¿Por qué se requiere -og? Me parece ilógico, pero también ES REQUERIDO en mi sistema.
Yai0Phah

44
@FrankScience De acuerdo, parece ilógico. Se hizo la misma pregunta en la lista de correo rsync . "Sugeriría que los documentos para --chownharían bien en mencionar eso --owner( --super) y --groupson necesarios" .
TachyonVortex

5

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

--usermap=tom:www-data

Cambia la propiedad de tom a www-data (también conocido como PHP / Nginx). Si está utilizando Mac como cliente, use brew para actualizar a la última versión. Y en su servidor, descargue las fuentes de archivos, ¡luego "hágalo"!


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.