De exemplos do man 8 sudo :
Para fazer uma listagem de uso dos diretórios na partição / home. Note que isto executa os comandos em um sub-shell para fazer o trabalho de redirecionamento de cd e arquivo.
$ sudo sh -c "cd /home ; du -s * | sort -rn > USAGE"
E eu não sei o que "testes" você correu com tee, mas o caso simples:
$ sudo id | sudo tee /tmp/junk
Solicita duas senhas de uma só vez e, em seguida, ambas disputam a fila de entrada para que nenhuma delas aceite a senha (e elas estragam a disciplina stty
line para que os caracteres digitados sejam reproduzidos).
Atualização: Ah, você queria saber por que o sudo não se aplica ao pipeline? Porque o shell tem que separar os subprocessos de um pipeline, cada qual herda o contexto do shell pai. No que diz respeito ao shell, sudo
é apenas um comando e executa seus argumentos em um contexto de privilégio elevado que não "flui" pelo canal. Como um conjunto de comandos, o pipeline pode ser lido como
drush sql-dump > pipe ; ( grep < pipe ; ( sudo tee file < pipe ) )
que é um modelo mais preciso do que está acontecendo.