What is the purpose of
sudo -v &&
here?
Acredito que isso minimize a surpresa do usuário se / quando eles forem solicitados pela segunda chamada para sudo
para sudo sh /dev/stdin
. Considere se o comando wget
leva alguns segundos para ser concluído; talvez o usuário troque de janelas ou tarefas e volte mais tarde, apenas para encontrar um prompt de senha não solicitado. O que está pedindo sua senha? Por quê?
Com o sudo -v
inicial, o usuário é imediatamente solicitado a fornecer sua senha, e a esperança é que o tempo limite do sudo cubra o tempo que o wget leva para ser concluído. Se o usuário já estiver dentro do tempo limite do sudo, o tempo limite é simplesmente estendido.
What is the purpose of
sh /dev/stdin
?
Aqui sh
está sendo chamado com um parâmetro como command_file
, que é um arquivo especial - um link para stdin.
NAME dash — command interpreter (shell)
SYNOPSIS
dash ... [command_file [argument ...]]
Como resultado, sh lê o arquivo_de_mandos, esperando e executando comandos a partir dele. Esse "arquivo" stdin especial é conectado através do pipe à saída de wget
, então o resultado final é que o conteúdo da URL é enviado para um shell no nível da raiz.
Não sei por que o projeto Caliber escolheu especificamente essa sintaxe. Alternativas incluem:
-
... | sudo sh
-
... | sudo sh -