Usando tee perdi meus privilégios sudo

1

Estou escrevendo um script de instalação e preciso executá-lo com sudo enquanto eu testo em instâncias do AWS RedHat, portanto, não posso ir diretamente como root . Eu quero escrever o log em um arquivo, bem como na tela. Nada deve ser mais fácil do que isso,

Eu posso ir à velha escola >> /tmp/Solr_Install.log 2>&1 e iniciar um processo final em segundo plano: tail -f installer.log & Essa solução tende a duplicar ou triplicar a saída na tela, então optei por uma solução tee-totaller.

Apenas use o poder da força e 2>&1 | tee -a /tmp/Solr_Install.log . Com essa solução, perco meus direitos de sudo e o script falha.

Perguntas: Por que a cauda mostra a mesma linha 2-3 vezes? (Tem algo a ver com o fato de que tail -f exibe as últimas 10 linhas?)

  • Isso pode ser corrigido de alguma forma?

  • Por que eu perdi meu sudo quando eu tee?

  • Isso pode ser evitado?

  • Existe alguma outra maneira de lançar materiais de registro em um arquivo e na tela ao mesmo tempo?

por Lefty G Balogh 03.01.2017 / 15:00

1 resposta

1

sudo não é um privilégio específico da sessão. sudo é um comando que executa outros comandos com privilégios elevados. Então, basta executar seu tee com sudo :

2>&1 | sudo tee -a /tmp/Solr_Install.log W
    
por 03.01.2017 / 16:10