Estou intrigado com isso por um bom tempo agora. No $PROMPT_COMMAND
bash do OS X, existe um comando chamado update_terminal_cwd
. Tenho certeza de que não é um bash embutido e provavelmente só existe no OS X. Mas não sei exatamente o que ele faz. Alguém sabe?
21
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 nasxterm
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 deApple_Terminal
.Seqüência de caracteres de formato codificado secreto opaco, '\ e] 7;% s \ a'. Suspeito.
Pelo que entendi, "file: // $ HOSTNAME" é mascarado para que você não possa ver o protocolo remoto: espionagem do host.
fonte
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 aprintf
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.