특정 활성 그룹을 사용하여 원격에서 로컬로 파일을 복사하려면 어떻게 해야 합니까?

특정 활성 그룹을 사용하여 원격에서 로컬로 파일을 복사하려면 어떻게 해야 합니까?

Singularity뿐만 아니라 Linux 전반의 복사에 관한 질문입니다. 원격 디렉터리에서 로컬 디렉터리로 재귀적으로 복사하려고 합니다. 내 정의 파일에는 다음이 있습니다.

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

문제는 에 abc액세스할 수 있는 그룹이 필요하다는 것입니다 . 이 그룹이 있지만 원격 컴퓨터의 활성 그룹에는 없습니다. 나는 약간의 변형을 시도했지만 모두 실패했습니다. 예를 들어:/a/b/c$USER@$HOST_MACHINEsg

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

abc로컬 에만 있고 로컬에는 없기 때문에 실패합니다 $HOST_MACHINE. 저도 사용하려고 했는데 ssh원격 디렉터리가 아닌 로컬 디렉터리에 복사해야 합니다.

rsync 및 scp 문서를 찾고 있었지만 복사하기 전에 원격 컴퓨터의 활성 그룹에 그룹을 추가하는 방법을 찾을 수 없습니다. 기본적으로 나는 다음과 같은 방법을 찾고 있습니다.

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

특수 그룹을 사용하여 원격에서 로컬로 파일을 복사하려면 어떻게 해야 합니까?

기본적으로 다음 단계를 수행할 수 있습니다.

  • 원격 시스템을 SSH로 연결합니다.
  • 명령 을 씻거나 사용하십시오 sg.
  • 원격에서 로컬로 복사합니다.
  • 원격 시스템을 종료합니다.

하지만 스크립트는 자동이어야 하므로 스크립트가 중단됩니다. 나는 또한 이것을 할 수 있는 방법이 있다고 생각하는데 나는 그것을 놓쳤습니다.

답변1

로컬 UID/GID 이름이 원격 UID/GID 이름과 일치한다고 보장되지는 않습니다.

그러나 시스템 간 전송에서 중요한 것은 UID/GID 값입니다. 보장되는 유일한 UID 값은 UID=0인 루트입니다.

일회용 복사본인 경우 원격 시스템에 그룹을 생성하려면 루트 액세스 권한이 필요합니다. 그래서 당신은 할 수 있습니다 -세심한 주의를 기울여- 새 그룹을 생성하려면 루트로 스크립트를 실행하세요.

두 컴퓨터 모두에서 일치하는 GID를 사용하여 그룹을 만들어야 합니다[그룹 이름은 원하는 대로 선택]. 아마도 이것은 두 시스템 모두에서 동일한 UID 세트를 가져야 할 것입니다 - [사용자 이름은 당신이 선택합니다].

이상적으로는 "단순화를 위해" 두 시스템에서 그룹 이름과 사용자 이름이 동일합니다.

/etc/group'groupname':'x':GID:user1,user2,...를 나열하는 구분된 파일입니다.

/etc/passwd사용자 이름, UID에 대한 잘 알려진 상호 참조를 제공합니다.

그러나 이는 테스트 실행 모드에서 실행하고 결과를 주의 깊게 확인하더라도 매우 위험도가 높은 절차인 것 같습니다.

답변2

가능하다면 set GID bit원격 시스템에 다음을 설정할 수도 있습니다.

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

(또는 /a필요에 따라 -에서 시작). 이는 일회성 구성 변경입니다.

따라서 원격 컴퓨터에서 수행되는 모든 작업은 abc기본 그룹으로 설정 되며 scp그대로 잘 작동합니다.

관련 정보