OS: Ubunutu 14.04
在/ home / ubuntu目录中,我创建了以下脚本:
echo >000-default.conf.test
sudo cp 000-default.conf.test /etc/apache2/sites-enabled/000-default.conf.test
sudo echo 'this is a test'>> /etc/apache2/sites-enabled/000-default.conf.test
sudo cat /etc/apache2/sites-enabled/000-default.conf.test
当我运行脚本时,收到以下错误消息:
./test_f.sh: line 3: /etc/apache2/sites-enabled/000-default.conf.test: Permission denied
当复制操作成功时,我收到错误消息的任何想法?
答案 0 :(得分:2)
不确定
将输出重定向到文件由shell完成,而不是由sudo
完成。因此,如果shell在非特权用户下运行,则>>
的调用早于sudo
获取权限。
您可以使用以下方法:
echo >000-default.conf.test
sudo cp 000-default.conf.test /etc/apache2/sites-enabled/000-default.conf.test
echo 'this is a test' | sudo tee -a /etc/apache2/sites-enabled/000-default.conf.test >/dev/null
sudo cat /etc/apache2/sites-enabled/000-default.conf.test
顺便说一句,而不是
echo >000-default.conf.test
你可以使用
touch 000-default.conf.test
甚至
>000-default.conf.test