특정 활성 그룹을 사용하여 원격에서 로컬로 파일을 복사하는 방법은 무엇입니까?

특정 활성 그룹을 사용하여 원격에서 로컬로 파일을 복사하는 방법은 무엇입니까?

이것은 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그대로 정상적으로 작동합니다.

관련 정보