为什么不能在权限为000的文件上执行`$ sudo echo“ hello”> file`?

时间:2018-11-07 22:00:21

标签: bash

在Bash中,输入以下命令序列:

$ touch testfile
$ chmod 000 testfile
$ sudo echo "hello" > testfile

最后一条命令失败。我一直相信,有了sudo我可以做任何事情。 有趣的是,我可以rm testfile而无需sudo,我只需要确认即可。

1 个答案:

答案 0 :(得分:3)

重定向是由您的原始外壳完成的,该外壳具有您的普通权限,而不是sudo的提升权限。您需要在sudo运行的过程中执行重定向:

sudo bash -c 'echo "hello" > testfile'