Ubuntu 为什么我可以编辑但不能附加unix文件
感觉很傻。使用同一用户我可以通过vi编辑文件,但在附加到文件时会出现权限错误我做错了什么。我想附加到此文件Ubuntu 为什么我可以编辑但不能附加unix文件,ubuntu,logging,permissions,Ubuntu,Logging,Permissions,感觉很傻。使用同一用户我可以通过vi编辑文件,但在附加到文件时会出现权限错误我做错了什么。我想附加到此文件 ls -alt /var/log drwxr-xr-x 11 root root 4096 May 14 01:20 . -rw-rw-r-- 1 root root 6 May 14 01:20 money-worker.log sudo echo "hello" >> /var/log/money-worker.log -bas
ls -alt /var/log
drwxr-xr-x 11 root root 4096 May 14 01:20 .
-rw-rw-r-- 1 root root 6 May 14 01:20 money-worker.log
sudo echo "hello" >> /var/log/money-worker.log
-bash: /var/log/money-worker.log: Permission denied
whoami
ubuntu
我正在运行Ubuntu12.04,并且正在运行
我喜欢一些建议。谢谢大家 这是因为您的
sudo
调用会影响echo,但不会影响对文件的权限。换句话说,该命令执行并输出(并且sudo
结束),然后尝试将该输出重定向到文件
您可以将echo“hello”>/var/log/money worker.log
放入文件,然后执行sudo yourscript.sh
或者只是更改文件的所有权,因为:
sudo echo "hello" >> /var/log/money-worker.log
指:
( sudo echo "hello" ) >> /var/log/money-worker.log
不是:
换句话说,shell在运行sudo
之前正在尝试追加。shell将(尝试)打开要追加的文件,然后将其“附加”到sudo
stanadard输出
作为解决方法,您可以尝试以下方法:
sudo bash -c 'echo "hello" >> /var/log/money-worker.log'
它将运行整个
bash
——在sudo
的控制下使用参数和重定向,我想这就是为什么您拥有超过250k的数据!非常感谢您的快速响应和快速编辑,以包含解决方案!对于那些正在使用upstart(initconf文件)处理此问题的人。这一点也很重要:
sudo bash -c 'echo "hello" >> /var/log/money-worker.log'