UbuntuでのみSSHセッション用の一時フォルダを作成する

UbuntuでのみSSHセッション用の一時フォルダを作成する

Ubuntuでこれを達成する方法はありますか?

  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 など、明示的に指定することもできます。

おすすめ記事