如何在不引用舊用戶的情況下切換用戶?

如何在不引用舊用戶的情況下切換用戶?

不久前,在使用非特權 LXC 時,我發現如果我用來su切換到用戶,創建容器的命令會失敗,但如果我用來ssh user@localhost登錄,則創建容器的命令會失敗。

這不是一個與 LXC 相關的問題,但它讓我想知道如何在不留下引用或從舊用戶引入變數的情況下最好地切換用戶?

謝謝!

答案1

su和之間的區別ssh在於,後者實際上涉及登入 shell,而前者預設不涉及登入 shell——儘管它確實創建了一個新的互動式 shell(請參閱頂部的 INVOCATIONman bash了解互動的登入貝殼)。從man su

為了向後相容,su 預設不會更改目前目錄,只設定環境變數 HOME 和 SHELL(如果目標使用者不是 root,則加上 USER 和 LOGNAME)。建議始終使用--login選項(而不是它的快捷方式-)以避免混合環境造成的副作用。

所以,你可以嘗試su --login看看這是否符合你的要求。

我假設您正在使用 GUI,這就是您不簡單退出並再次登入的原因。然而,那可能login無論如何,透過簡單地從您使用的任何終端運行,都是可能的(我相信,取決於您的初始化系統) 。如果它有效,您應該會看到正常的login:提示,完成後您可以exit按照提示進行操作su

相關內容