使用了 sudo 卻依然顯示許可權不夠的原因

Undefined443發表於2024-06-15
$ sudo echo "151.101.76.133 raw.githubusercontent.com" >> /etc/hosts
bash: /etc/hosts: 許可權不夠

bash 報錯說許可權不夠,是因為重定向符號 >>> 也是 bash 的命令。我們使用 sudo 只是讓 echo 命令具有了 root 許可權,但是沒有讓 >>> 命令也具有 root 許可權,所以 bash 會認為這兩個命令都沒有寫入 hosts 檔案的許可權。

解決方法:

sudo sh -c "echo '151.101.76.133 raw.githubusercontent.com' >> /etc/hosts"

利用 sh -c 命令,它可以讓 bash 將一個字串作為完整的命令來執行,這樣就可以將 sudo 的影響範圍擴充套件到整條命令。

相關文章