Shell
儘管有 sudo 權限,但無法清空文件
我有一個由
root
使用者擁有和編寫的文件。我有另一個使用者
systemuser
,我們為每個操作授予了 sudo 權限。我能夠
systemuser
像我為root
使用者做的那樣執行每一個動作。但是我試圖使 root 擁有和寫入的文件為空,但我得到了權限被拒絕的錯誤。
>api-server-out-0.log -bash: api-server-out-0.log: Permission denied $ sudo >api-server-out-0.log -bash: api-server-out-0.log: Permission denied
注意:與
root
使用者一起執行的程序目前正在寫入此日誌文件。您能否建議我如何使用 `systemuser ?
sudo > api-server-out-0.log
不會工作。它實際上做了什麼,它在
sudo
沒有任何參數的情況下啟動,並嘗試將其在您的使用者帳戶下的輸出重定向到指定的文件,這當然不會起作用,因為該文件歸根使用者所有。你真正想做的是
sudo dd if=/dev/null of=api-server-out-0.log # or sudo truncate -s 0 api-server-out-0.log # or sudo sh -c 'echo -n "" > api-server-out-0.log' # or sudo sh -c ': > api-server-out-0.log'
Artem S. Tashkinov描述了“為什麼”並提供了許多選項中的一些。這是另一種解決方法:
sudo tee api-server-out-0.log </dev/null