Respostas:
Ele atualiza o prompt para ecoar o Diretório de Trabalho Atual (CWD) e é definido em /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
código de controle para definir o texto da barra de título. A documentação mais acessível é talvez o Linux Bash Prompt Howto . Existe documentação real nas xterm
fontes, IIRC.
/etc/bashrc_Apple_Terminal
(encontrada através de um truque aprendido aqui ). Mas acho que dentro de uma sessão de tela, $ PROMPT_COMMAND se torna uma sequência vazia, o que significa que /etc/bashrc_Apple_Terminal
provavelmente não será mais executado. Você sabe por quê?
/etc/bashrc
, ele usa a variável $TERM_PROGRAM
para determinar o terminal e executar um correspondente, /etc/bashrc_$TERM_PROGRAM
se existir. Portanto, na sessão da tela, $TERM_PROGRAM
provavelmente não está definido ou está definido como algo diferente de Apple_Terminal
.
Seqüência de caracteres de formato codificado secreto opaco, '\ e] 7;% s \ a'. Suspeito.
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
Pelo que entendi, "file: // $ HOSTNAME" é mascarado para que você não possa ver o protocolo remoto: espionagem do host.
update_terminal_cwd
não é uma variável de ambiente, é o nome de uma função. É definido em texto não criptografado /etc/bashrc
e a printf
função não pode fazer nada, exceto imprimir strings formatadas na tela. Finalmente, o link vuln que você postou envolve executar funções arbitrárias anexando texto a uma definição de variável de ambiente ... que não tem nada a ver com o que está sendo discutido aqui. E o que os navegadores têm a ver com scripts de shell?
typeset -f
ele mostrará todas as funções "definidas pelo usuário" e foi assim que isso apareceu. Se eles estavam tentando fazer algo superficial, eles não tornariam isso facilmente visível.