有時偷懶寫 script 想要用 echo "somethng" 寫資料到 root 擁有的檔案,就會出現 Permission denied 的訊息:
$ sudo echo '+::::::' >> /etc/passwd
-bash: /etc/passwd: Permission denied
改用下招即可:
$ sudo sh -c "echo '+::::::' >> /etc/passwd"
其實碰到的使用情境是 NIS client 的一堆檔案更新:
$ sudo sh -c "echo '+::::::' >> /etc/passwd" && sudo sh -c "echo '+:::' >> /etc/group" && sudo sh -c "echo '+::::::::' >> /etc/shadow" && sudo sh -c "echo '+:::' >> /etc/gshadow"
補充一點,如果 NIS 尚未設定好時,這時用 sudo 或 login 等相關動作會卡住非常久,從 /var/log/syslog 會看到 … ypbind … : broadcast: RPC: Timed out. 相關訊息,故建議先用 sudo su 轉成 root 角色在安裝 NIS 相關動作 :P
留言(1)
以上為 Blogger 時期的留言封存。