Sudo

sudo 和 sudo -i 訪問功能

  • October 18, 2009

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

我很驚訝這些命令有不同的行為,是什麼導致 justsudo版本失敗?

在第一個範例中,重定向發生在您目前的 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。

引用自:https://serverfault.com/questions/75522