
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 abc
para poder acceder /a/b/c
a $USER@$HOST_MACHINE
. Tengo este grupo pero no estoy en mis grupos activos en la máquina remota. Probé algunas variaciones sg
pero todas fallaron. Por ejemplo:
sg abc scp -r $USER@$HOST_MACHINE:/a/b/c ${SINGULARITY_ROOTFS}/a/b
Falla porque lo tengo abc
solo en $HOST_MACHINE
y no localmente. También intenté usarlo ssh
pero 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
sg
comando. - 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/group
es un archivo delimitado que enumera 'nombre de grupo':'x':GID:usuario1,usuario2,...
/etc/passwd
proporciona 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 bit
en 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á abc
configurado como grupo principal y scp
funcionará bien tal como está.