我在 OSX 上。可以同時使用登入(1)或者蘇(1)以任何使用者登入。
但是,兩個二進位檔案可以完成相同的工作?
哪一個消耗少系統資源?
哪一種比較不容易出現安全風險?
哪個背後的差異?
[注意,我不介意取得 root 存取權。我只是計劃自動訪問多用戶網路 *nix 上的帳戶。 ]
答案1
login
使用新環境啟動 shell,並丟棄目前環境。
su
使用現有環境啟動 shell,並僅修改 HOME、USER 和 SHELL 變數。
例如,
> export foo=bar
> su <username>
> echo $foo
bar
但:
> export foo=bar
> login <username>
> echo $foo
不列印任何內容。
AFAIK,su -l
相當於login
.
答案2
su(1) 將使用目前環境建立新 shell,一旦退出子 shell,您將返回呼叫 shell。
login(1) 也會建立一個新的 shell,但具有全新的環境。
答案3
這不是完全相同的工作。 「su」只是更改擁有目前終端的用戶,「login」(如名稱所示)建立新會話。
我不是 OSX 專家,但在所有 *NIX 中,重要的安全考慮是禁止遠端直接登入 root。只能以一般使用者登入後透過「su」完成。