Wie kann ich mit einer bestimmten aktiven Gruppe Dateien von einem Remote-Computer in einen lokalen Ordner kopieren?

Wie kann ich mit einer bestimmten aktiven Gruppe Dateien von einem Remote-Computer in einen lokalen Ordner kopieren?

Es handelt sich um eine Frage zum Kopieren in Linux im Allgemeinen und nicht nur in Singularity. Ich versuche, rekursiv vom Remote-Verzeichnis in das lokale Verzeichnis zu kopieren. In meiner Definitionsdatei habe ich:

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

Das Problem ist, dass ich eine Gruppe brauche, um auf abczugreifen zu können . Ich habe diese Gruppe, aber nicht in meinen aktiven Gruppen auf dem Remote-Computer. Ich habe einige Varianten von ausprobiert, aber sie sind alle fehlgeschlagen. Beispiel:/a/b/c$USER@$HOST_MACHINEsg

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

Schlägt fehl, weil ich es abcnur in $HOST_MACHINEund nicht lokal habe. Ich habe auch versucht, es zu verwenden, sshaber ich muss es in ein lokales Verzeichnis kopieren und nicht in ein Remote-Verzeichnis.

Ich habe in den Dokumenten zu rsync und scp nachgesehen, konnte aber keine Möglichkeit finden, vor dem Kopieren eine Gruppe zu meinen aktiven Gruppen auf Remote-Rechnern hinzuzufügen. Im Grunde suche ich nach einer Möglichkeit, Folgendes zu tun:

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

Wie kann ich mit einer speziellen Gruppe Dateien von einem Remote-Computer in einen lokalen Ordner kopieren?

Grundsätzlich könnte ich folgende Schritte durchführen:

  • Führen Sie eine SSH-Verbindung zum Remotecomputer durch.
  • Waschen oder den sgBefehl verwenden.
  • Von der Remote-Instanz zur lokalen Datei kopieren.
  • Remote-Computer beenden.

Aber das Skript sollte automatisch sein, also bricht es es ab. Ich vermute auch, dass es eine Möglichkeit gibt, dies zu tun, und ich übersehe sie nur.

Antwort1

Es kann nicht garantiert werden, dass Ihre lokalen UID/GID-Namen mit den Remote-UID/GID-Namen übereinstimmen.

Aber es sind die UID/GID-Werte, die bei Übertragungen zwischen Maschinen wichtig sind. Der einzige garantierte UID-Wert ist root – mit einer UID=0.

Wenn es sich um eine einmalige Kopie handelt, benötigen Sie Root-Zugriff, um eine Gruppe auf dem Remote-Computer zu erstellen. Sie könnten also -mit großer Sorgfalt- Führen Sie Ihr Skript als Root aus, nur um eine neue Gruppe zu erstellen.

Sie müssen eine Gruppe mit einer GID erstellen, die auf beiden Maschinen übereinstimmt [Gruppenname ist Ihre Wahl]; vermutlich sollte diese auf beiden Maschinen den gleichen Satz UIDs haben – [Benutzernamen sind Ihre Wahl].

Im Idealfall wären „der Einfachheit halber“ die Gruppennamen und Benutzernamen auf beiden Maschinen identisch.

/etc/groupist eine durch Trennzeichen getrennte Datei mit der Auflistung von „Gruppenname“: „x“:GID:Benutzer1, Benutzer2, …

/etc/passwdgibt einen bekannten Querverweis von Benutzername,UID

Allerdings scheint dies ein sehr risikoreiches Verfahren zu sein – selbst wenn Sie es im Probelauf ausgeführt und die Ergebnisse sorgfältig am Schreibtisch überprüft haben.

Antwort2

Wenn möglich, können Sie einfach Folgendes set GID bitauf dem Remotecomputer festlegen:

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

(oder beginnen Sie bei /a– je nach Bedarf). Dies ist eine einmalige Konfigurationsänderung.

Alles, was auf dem Remotecomputer getan wird, wird abcals primäre Gruppe festgelegt und scpfunktioniert problemlos.

verwandte Informationen