我們可以在同一個 Linux/Unix 發行版上為不同的使用者設定不同的 shell 嗎?

我們可以在同一個 Linux/Unix 發行版上為不同的使用者設定不同的 shell 嗎?

好吧,這不是我想做的事情,但我問這個問題是為了了解更多有關 Unix/Linux 系統中 Shell 配置的資訊。所以,我想要答案的情況如下:

由於 Unix/Linux 系統提供了不同的 shell,因此我們可以為每個有權存取系統的使用者配置不同的 shell。因此,假設 Tom、Dick 和 Harry 是 3 個被授權使用系統「Unix」的用戶,而我希望「Tom」使用 shell桀騁, 迪克使用tcsh和哈利使用巴什殼。我怎樣才能做到這一點,這可能嗎?

答案1

首先,有效的 shell 列在 中/etc/shells。任何使用者都可以使用檔案chsh中的 long 來更改其預設 shell /etc/shells

其次,如果你想新增一個 shell /etc/shells,如果你從那裡刪除一個條目,特別是 /bin/sh,你可能會搞砸系統,因為/bin/login通常不會啟動未在那裡列出的 shell。

更多資訊可在chsh(1),登入名稱.defs(5),以及密碼(5) 手冊頁。

這種能力已經存在很久了(我相信BSD 4.x)

答案2

是的,不同的使用者可以有不同的 shell 設定。您可以使用例如命令來更改它們chsh。要將目前使用者的 shell 變更為 bash(假設它位於 /bin/bash 中):

chsh -s /bin/bash [username]

您也可以/etc/passwd手動修改檔案並變更為該使用者指定 shell 的部分。例如:

root:*:0:0:System Administrator:/var/root:/bin/sh

/etc/passwd 的每一行中的最後一部分(在最後一個之後)與上面的行類似,:指定該使用者的 shell。

答案3

您可以使用chsh

chsh -s /bin/sh user_name

相關內容