ログファイルに書き込むときに権限が拒否されるのはなぜですか? [コピー]

ログファイルに書き込むときに権限が拒否されるのはなぜですか? [コピー]
debian8@hwy:~$ sudo cat /etc/sudoers |grep debian8
debian8  ALL=(ALL:ALL) NOPASSWD:ALL

これは、debian8がスーパーユーザーとしてコマンドを実行できるユーザーであることを意味します。
ログファイルに何かを書きたいです。

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にはroot権限がありますが、なぜtrarricログに日付履歴を書き込めないのですか?

答え1

sudoコマンドが終わるところでコマンドが終了するからです。

暗黙的な括弧を使用すると、これがまさにあなたがすることです(特に複雑な方法で実行していますが、それ以上であることを付け加えます)。

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

ご覧のとおり、rootechoとしてコマンドを実行しますが、リダイレクトはdebian8で発生します。

会議ジョブは次のとおりです。

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

関連情報