Sudo
sudo 和 sudo -i 訪問功能
sudo 和 sudo -i 之間的權限區別是什麼?
有了
sudo
它$sudo echo "search foo.bar.baz" >> /etc/resolv.conf bash: /etc/resolv.conf: Permission denied
…與
sudo -i
$sudo -i #echo "search foo.bar.baz" >> /etc/resolv.conf
…有用。特權是:
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
我很驚訝這些命令有不同的行為,是什麼導致 just
sudo
版本失敗?
在第一個範例中,重定向發生在您目前的 shell 中,而不是 sudo 子 shell 中。
sudo
執行並將結果返回到您目前的 shell 也是如此echo "search foo.bar.baz"
,然後嘗試將其寫入/etc/resolv.conf
.
bash
您可以通過直接呼叫 sudo 命令來使第一個範例工作:sudo bash -c "echo 'search foo.bar.baz' >> /etc/resolv.conf"
您可以使用
sudo
具有管理員權限的 1 個命令。用
sudo -i
你登錄root帳戶,用他自己的shell和環境變數。否則,您可以使用
sudo -s
, 使用它登錄到 root 帳戶,但您仍然使用您的 shell 和變數。問題是
sudo -i
你可能會得到另一個 shell 和另一個可以解決問題的 $PATH。