好吧,這不是我想做的事情,但我問這個問題是為了了解更多有關 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