¿Cómo puedo copiar archivos de remoto a local con un grupo activo específico?

¿Cómo puedo copiar archivos de remoto a local con un grupo activo específico?

Es una pregunta sobre copiar en Linux en general y no solo en Singularity. Estoy intentando copiar de forma recursiva desde un directorio remoto al directorio local. En mi archivo de definición tengo:

scp -r $USER@$HOST_MACHINE:/a/b/c ${SINGULARITY_ROOTFS}/a/b 

El problema es que necesito un grupo abcpara poder acceder /a/b/ca $USER@$HOST_MACHINE. Tengo este grupo pero no estoy en mis grupos activos en la máquina remota. Probé algunas variaciones sgpero todas fallaron. Por ejemplo:

sg abc scp -r $USER@$HOST_MACHINE:/a/b/c ${SINGULARITY_ROOTFS}/a/b 

Falla porque lo tengo abcsolo en $HOST_MACHINEy no localmente. También intenté usarlo sshpero necesito copiar al directorio local y no al directorio remoto.

Estaba buscando en los documentos de rsync y scp pero no pude encontrar una manera de agregar un grupo a mis grupos activos en máquinas remotas, antes de copiar. Básicamente estoy buscando una manera de hacer:

scp -active_group abc -r $USER@$HOST_MACHINE:/a/b/c ${SINGULARITY_ROOTFS}/a/b 

¿Cómo puedo copiar archivos de remoto a local con un grupo especial?

Básicamente podría hacer los siguientes pasos:

  • Ssh la máquina remota.
  • Lave o use el sgcomando.
  • Copiar de remoto a local.
  • salir de la máquina remota.

Pero el script debería ser automático, por lo que lo interrumpe. También supongo que hay una manera de hacer esto y simplemente me la estoy perdiendo.

Respuesta1

No se garantiza que sus nombres UID/GID locales coincidan con los nombres UID/GID remotos.

Pero son los valores UID/GID los que son importantes en las transferencias entre máquinas. El único valor de UID garantizado es root, con un UID=0.

Si se trata de una copia única, necesitará acceso de root para crear un grupo en la máquina remota. Entonces podrías -con gran cuidado- ejecute su script como root - sólo para crear un nuevo grupo.

Debe crear un grupo con un GID que coincida en ambas máquinas [el nombre del grupo es su elección]; Presumiblemente, esto debería tener el mismo conjunto de UID en ambas máquinas: [los nombres de usuario son su elección].

Lo ideal sería que los nombres de grupo y de usuario fueran los mismos en las dos máquinas, "por simplicidad".

/etc/groupes un archivo delimitado que enumera 'nombre de grupo':'x':GID:usuario1,usuario2,...

/etc/passwdproporciona una referencia cruzada bien conocida de nombre de usuario, UID

Sin embargo, este parece ser un procedimiento de muy alto riesgo, incluso si lo ejecutó en modo de prueba y verificó cuidadosamente los resultados.

Respuesta2

Si es posible, puede configurar set GID biten la máquina remota:

$chmod g+s abc -R /a/b/c 

(o empezar en /a- dependiendo de sus necesidades). Este es un cambio de configuración único.

Entonces, todo lo que se haga en la máquina remota se habrá abcconfigurado como grupo principal y scpfuncionará bien tal como está.

información relacionada