por que permissão negada quando escrever algo em um arquivo de log? [duplicado]

0
debian8@hwy:~$ sudo cat /etc/sudoers |grep debian8
debian8  ALL=(ALL:ALL) NOPASSWD:ALL

Significa que debian8 é um usuário permitido para executar um comando como superusuário.
Eu quero escrever algo em um arquivo de log.

debian8@hwy:~$ trafficlog="/var/log/traffic.log"
debian8@hwy:~$ sudo echo -n 'date "+%Y-%m-%d %H:%M:%S"' >> $trafficlog
bash: /var/log/traffic.log: Permission denied

debian8 tem permissão de root, por que não pode gravar um registro de data no registro trarric?

    
por it_is_a_literature 04.02.2017 / 09:55

1 resposta

4

Porque o comando sudo termina onde o comando faz.

Usando parênteses implícitos, isso é o que você está fazendo (e deixe-me acrescentar que você está fazendo isso de uma maneira particularmente intricada, mas isso de lado)

(sudo echo -n) ( date "+%Y-%m-%d %H:%M:%S" ) > > $ trafficlog

Como você pode ver, você executa o comando echo como root, mas o redirecionamento acontece como debian8.

O que funcionaria seria

echo -n date "+%Y-%m-%d %H:%M:%S" | sudo tee --append $ trafficlog

    
por 04.02.2017 / 10:08