为什么某些命令需要 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"

相关内容