![以 sudo 身份运行命令和以 root 身份运行命令之间的区别?](https://linux22.com/image/840195/%E4%BB%A5%20sudo%20%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%E5%92%8C%E4%BB%A5%20root%20%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
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 身份登录之间也存在一些实际差异,涉及环境变量。