우분투에서 이것을 달성하는 방법이 있습니까?
- 일부 컴퓨터에서 SSH 세션이 시작되면 해당 컴퓨터의 메모리에 특수 폴더 X가 생성됩니다.
- 폴더 X의 내용과 그것과 상호 작용하는 기능은 이 터미널 세션에만 부여되며 다른 누구도 폴더 X의 존재조차 알지 못합니다. 다른 SSH 세션을 사용하여 시스템에 연결된 동일한 사용자라도 해당 세션에서 해당 사용자를 볼 수 없습니다(그는 자신의 SSH 세션에 대한 폴더의 다른 인스턴스를 봅니다).
- 세션이 어떤 방식으로든(정상적으로 또는 갑자기) 종료되면 폴더의 내용은 자동으로 영구적으로 삭제되며 누구도 검색할 수 없습니다.
이것이 불가능할 경우 가장 가까운 해결 방법을 제안해 주십시오.
답변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}"
- 원격 호스트에 생성될 폴더 X의 경로가 포함된 로컬 환경 변수입니다. 다른 세션과의 충돌을 피하기 위해 무작위화합니다. $USER 또는 타임스탬프 또는 RANDOM에 추가하거나 대신 /tmp/someprefix_${USER}_${RANDOM}과 같은 다른 항목을 사용할 수도 있습니다.
- 원격 호스트에서 실행될 지침이 포함된 로컬 환경 변수입니다. 2a. 원격 환경 변수 V1 var는 로컬 XDIR 값을 원격 호스트 환경에 전달합니다. 2b.원격 폴더 생성 X 2c. 트랩 매개변수는 HUP를 포함하여 EXIT 신호에서 실행되는 명령입니다. 즉, 정상적인 종료 또는 세션 중단 시 폴더 X가 삭제됩니다.
- 먼저 준비된 지침을 사용하여 서버에 연결한 후 원격 SHELL을 시작합니다. /bin/bash와 같이 명시적으로 지정할 수도 있습니다.