![为什么向日志文件写入内容时权限被拒绝?](https://linux22.com/image/104685/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%90%91%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%E5%86%99%E5%85%A5%E5%86%85%E5%AE%B9%E6%97%B6%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D%EF%BC%9F%20.png)
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
正如您所看到的,您echo
以 root 身份执行该命令,但重定向发生在 debian8 上。
什么会工作将是
回声-n date "+%Y-%m-%d %H:%M:%S"
| sudo tee --附加 $trafficlog