Ale*_*lex 3 sudo unix-shell file-permissions
sudo 和 sudo -i 之间的特权区别是什么?
有了sudo
它
$sudo echo "search foo.bar.baz" >> /etc/resolv.conf
bash: /etc/resolv.conf: Permission denied
Run Code Online (Sandbox Code Playgroud)
...与 sudo -i
$sudo -i
#echo "search foo.bar.baz" >> /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
...有用。特权是:
drwxr-xr-x 166 root root 12288 2009-10-17 21:02 .
-rw-r--r-- 1 root root 42 2009-10-17 20:55 /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
我很惊讶这些命令有不同的行为,是什么导致 justsudo
版本失败?
Kam*_*iel 12
在第一个示例中,重定向发生在您当前的 shell 中,而不是在 sudo 子 shell 中。所以sudo
正在执行echo "search foo.bar.baz"
并将结果返回到您当前的 shell,然后尝试将其写入/etc/resolv.conf
.
您可以通过bash
直接作为 sudo 命令调用来使第一个示例工作:
sudo bash -c "echo 'search foo.bar.baz' >> /etc/resolv.conf"
Run Code Online (Sandbox Code Playgroud)