Ubuntu에서만 SSH 세션용 임시 폴더 생성

Ubuntu에서만 SSH 세션용 임시 폴더 생성

우분투에서 이것을 달성하는 방법이 있습니까?

  1. 일부 컴퓨터에서 SSH 세션이 시작되면 해당 컴퓨터의 메모리에 특수 폴더 X가 생성됩니다.
  2. 폴더 X의 내용과 그것과 상호 작용하는 기능은 이 터미널 세션에만 부여되며 다른 누구도 폴더 X의 존재조차 알지 못합니다. 다른 SSH 세션을 사용하여 시스템에 연결된 동일한 사용자라도 해당 세션에서 해당 사용자를 볼 수 없습니다(그는 자신의 SSH 세션에 대한 폴더의 다른 인스턴스를 봅니다).
  3. 세션이 어떤 방식으로든(정상적으로 또는 갑자기) 종료되면 폴더의 내용은 자동으로 영구적으로 삭제되며 누구도 검색할 수 없습니다.

이것이 불가능할 경우 가장 가까운 해결 방법을 제안해 주십시오.

답변1

XDIR=/tmp/X_$RANDOM ; RCMD="export V1=$XDIR ; mkdir -p \$V1; trap \"[ -d \$V1 ] && rm -rf \$V1\" EXIT " ; ssh -t user@rhost  "$RCMD ;  \${SHELL}"

<<이 못생긴 네티즌은 어쩌려고요?

여기서는 덩어리로 나누어 설명됩니다.

1. XDIR=/tmp/X_$RANDOM ;
2. RCMD="
2a.      export V1=$XDIR ; 
2b.      mkdir -p \$V1; 
2c.      trap \"[ -d \$V1 ] && rm -rf \$V1\" EXIT " ;
3. ssh -t user@rhost  "$RCMD ;  \${SHELL}"
  1. 원격 호스트에 생성될 폴더 X의 경로가 포함된 로컬 환경 변수입니다. 다른 세션과의 충돌을 피하기 위해 무작위화합니다. $USER 또는 타임스탬프 또는 RANDOM에 추가하거나 대신 /tmp/someprefix_${USER}_${RANDOM}과 같은 다른 항목을 사용할 수도 있습니다.
  2. 원격 호스트에서 실행될 지침이 포함된 로컬 환경 변수입니다. 2a. 원격 환경 변수 V1 var는 로컬 XDIR 값을 원격 호스트 환경에 전달합니다. 2b.원격 폴더 생성 X 2c. 트랩 매개변수는 HUP를 포함하여 EXIT 신호에서 실행되는 명령입니다. 즉, 정상적인 종료 또는 세션 중단 시 폴더 X가 삭제됩니다.
  3. 먼저 준비된 지침을 사용하여 서버에 연결한 후 원격 SHELL을 시작합니다. /bin/bash와 같이 명시적으로 지정할 수도 있습니다.

관련 정보