我希望有一個腳本可以從另一個網站自動遷移網站,並將 Includes 附加到 /etc/httpd/conf.d/vhosts.conf 檔案中。
但是,當我嘗試使用 echo 將字串附加到文件末尾時,我得到以下資訊:
$ sudo echo "Include thing" >> /etc/httpd/conf.d/vhosts.conf
-bash: /etc/httpd/conf.d/vhosts.conf: Permission denied
但我可以 vi /etc/httpd/conf.d/vhosts.conf,添加行和 :wq 檔案來保存並關閉它。
我缺什麼?
答案1
Sudo 提升它所呼叫的進程,它不會提升任何目前 shell 的處理,如重定向、通配符等。
>> /etc/httpd/conf.d/vhosts.conf
您正在處理檔案重定向目前的shell,它仍在您目前的權限下運行。
你可以嘗試這樣的事情。
sudo bash -c 'echo "Include thing" >> /etc/httpd/conf.d/vhosts.conf'
或者
echo "Include thing" | sudo tee -a /etc/httpd/conf.d/vhosts.conf