Відповіді:
Він оновлює підказку, щоб відлучити Поточний робочий каталог (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"
}
/etc/bashrc
, вона використовує змінну $TERM_PROGRAM
для визначення терміналу та запуску відповідного, /etc/bashrc_$TERM_PROGRAM
якщо він існує. Отже, на екрані сеансу, $TERM_PROGRAM
ймовірно, не встановлено або встановлено щось інше, ніж Apple_Terminal
.
Непрозорий секретний рядок закодованого формату, '\ e] 7;% s \ a'. Підозрюваний.
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
З того, що я збираю, "файл: // $ HOSTNAME" маскується, щоб ви не могли бачити віддалений протокол: шпигунство хоста.
update_terminal_cwd
не є змінною середовища, це ім'я функції. Він визначений чітким текстом у, /etc/bashrc
а printf
функція не має можливості робити нічого, крім друку відформатованих рядків на екран. Нарешті, посилання vuln, яке ви опублікували, передбачає виконання довільних функцій шляхом додавання тексту до визначення змінної середовища ... що не має нічого спільного з тим, що тут обговорюється. І що wtf мають стосунки до сценаріїв оболонок?
typeset -f
він покаже всі "визначені користувачем" функції, і ось як це спливе. Якби вони намагалися зробити щось схематичне, вони не зробили б це легко помітним.