我正在編寫一個必須以管理員權限運行的bash shell腳本(sudo)。爲什麼我不能將文本重定向到文本文件?
我運行下面的命令
sudo -u $SUDO_USER touch /home/$SUDO_USER/.kde/share/config/kcmfonts > /dev/null
sudo -u $SUDO_USER echo "[General]\ndontChangeAASettings=true\nforceFontDPI=96" >> /home/$SUDO_USER/.kde/share/config/kcmfonts
第一個命令成功,並創建文件。但是第二個命令保持與以下示數:
不能創建/home/username/.kde/share/config/kcmfonts:權限被拒絕
我不明白爲什麼這樣下去示數的權限。我以調用sudo的用戶身份運行該命令,所以我應該有權寫入此文件。 kcmfonts文件已成功創建。
有人可以幫我嗎?
即使是超級用戶也需要明確的寫入權限。如果文件模式是444,作爲root將無助於... – Floris
請參閱http://stackoverflow.com/questions/82256/how-do-i-use-sudo-to-redirect-output-to-a-location -i-dont-have-permission-to-wr – shf301
umask可能設置爲0666,導致新文件爲0444.另外,爲什麼在第一行將輸出重定向到/ dev/null? –