以 sudo 身份运行命令和以 root 身份运行命令之间的区别?

以 sudo 身份运行命令和以 root 身份运行命令之间的区别?

sudo我知道这个问题已在很多情况下被涉及,但我无法理解和预测何时添加到 sudoers 文件的用户在添加到命令前面时无权执行某些操作。

ubuntu@localhost$ ls -lh
-rw-r--r-- 1 root   root     10 Aug 11 11:21 test
ubuntu@localhost$ sudo echo 'something' >> test
-bash: test: Permission denied

ubuntu@localhost$ sudo su
root@localhost# echo 'something' >> test

为什么我被拒绝执行该命令的权限sudo echo 'something' >> test

答案1

在本例中,这是因为echo该命令具有超级用户权限。该>>部分具有正常权限。如果您想使用 sudo 权限写入,请使用

$ echo 'something' | sudo tee test

因此,就您而言,前一个版本并非完全以 sudo 身份运行。这就是区别所在。不过,我认为 sudo 和以 root 身份登录之间也存在一些实际差异,涉及环境变量。

相关内容