Centos

為什麼當我使用 su root 時我的 root 的 $PATH 變數不同

  • August 21, 2010

當我試圖以普通使用者(在 CentOS 5 上)執行 chkconfig 時,我意識到我無法訪問它,因為目錄 sbin 不在我的 $ PATH. When I su to root it still doesn’t work. I realize that the $ PATH 變數與我切換的普通使用者相同。

但是,當我以 root 身份登錄時,$PATH 變數對於 root 來說是正確的,我可以執行該命令。

這應該以這種方式工作嗎?如何讓普通使用者臨時訪問只能以 root 身份執行的命令?

謝謝

嘗試使用命令su -。這-意味著新外殼將獲得您已更改為的使用者的環境。如果您不使用它,您的大部分環境將保持不變。

su 的手冊頁說:

可選參數 - 可用於提供類似於使用者直接登錄時所期望的環境。

Root 和 User 具有完全不同且離散的環境。使用 sudo,您可以執行受限命令,但實際上保持環境變數不變。

另一方面, su ,假設它載入了根的環境。這幾乎就像以root身份登錄。

關於您的問題,您可以讓普通使用者能夠“看到”命令,但不能執行它們。你仍然需要root權限。

例如,您可以以普通使用者身份執行 ifconfig ,只是為了查看您的 ip ,但是如果您想更改某些內容,那麼您必須具有適當的權限。

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