為什麼有些指令​​需要 su 而不是 sudo 來執行?

為什麼有些指令​​需要 su 而不是 sudo 來執行?

我認為運行命令與sudo以 root 使用者身分登入並執行命令相同。然而,我發現一些命令不適sudo用於su.

例如,

sudo > mail.log
bash: mail.log: Permission denied

但實際上輸入su並執行相同的命令是有效的。

為什麼是這樣?

答案1

看看你用這個指令做了什麼。

sudo > mail.log

>在重定向 stdout 之前的命令列中嘗試截斷mail.log檔案。此操作由普通用戶執行(在sudo不帶參數的啟動之前)。普通用戶可能沒有mail.log文件的寫入權限。

一切都按其應有的方式進行。

如果需要sudo來執行命令並將其寫入檔案類型,請使用以下命令:

sudo "some_command with operands > mail.log"

相關內容