Ubuntuでこれを達成する方法はありますか?
- 一部のコンピュータで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 など、明示的に指定することもできます。