回答:
現在の作業ディレクトリ(CWD)をエコーするようにプロンプトを更新し、以下で定義され/etc/bashrc
ます。
update_terminal_cwd() {
# Identify the directory using a "file:" scheme URL,
# including the host name to disambiguate local vs.
# remote connections. Percent-escape spaces.
local SEARCH=' '
local REPLACE='%20'
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
printf '\e]7;%s\a' "$PWD_URL"
}
xterm
タイトルバーのテキストを設定する制御コードです。最もアクセスしやすいドキュメントは、おそらくLinux Bash Prompt Howtoです。xterm
ソースには実際のドキュメント、IIRCがあります。
/etc/bashrc
、変数$TERM_PROGRAM
を使用して端末を判別し、/etc/bashrc_$TERM_PROGRAM
存在する場合は対応するものを実行します。したがって、スクリーンセッションで$TERM_PROGRAM
は、おそらく設定されていないか、以外に設定されていApple_Terminal
ます。
不透明なシークレットでエンコードされた形式文字列 '\ e] 7;%s \ a'。容疑者。
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
私が収集したものから、「file:// $ HOSTNAME」はマスクされているので、リモートプロトコル:ホストスパイを見ることができません。
update_terminal_cwd
環境変数ではなく、関数の名前です。これはクリアテキストで定義されて/etc/bashrc
おり、このprintf
関数には、フォーマットされた文字列を画面に出力する以外の機能はありません。最後に、投稿したvulnリンクには、環境変数の定義にテキストを追加して任意の関数を実行します。これは、ここで説明していることとは何の関係もありません。また、ブラウザはシェルスクリプトに関係していますか?
typeset -f
すべての「ユーザー定義」関数が表示され、それがポップアップ表示されます。彼らが何か大ざっぱなことをしようとしていたなら、彼らはこれを簡単に目に見えないでしょう。