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 身份登录之间也存在一些实际差异,涉及环境变量。