3種方法改變Linux的預設shell
阿新 • • 發佈:2022-03-27
shell是Unix或GNU/Linux等作業系統中的命令直譯器,shell是一個接受和解釋命令的程式;Linux 上有多種 shell,例如 bash、sh、ksh、zsh、fish 和許多其他鮮為人知的 shell。它為計算機使用者提供了 Unix/GNU Linux 系統的介面,以便使用者可以使用一些輸入資料執行不同的命令或實用程式/工具。當 shell 執行完程式後,它會在螢幕上向用戶傳送一個輸出,這是標準輸出裝置。因此,它被稱為“命令直譯器”。
Bash ( /bin/bash ) 是大多數Linux 系統上的流行 shell,它通常是使用者帳戶的預設 shell。
在 Linux 中更改使用者的 shell 有幾個原因,包括:
- 使用nologin shell阻止或禁用Linux 中的正常使用者登入。
- 在將使用者命令傳送到 shell 執行之前,使用 shell 包裝指令碼或程式登入使用者命令。在這裡,您將 shell 包裝器指定為使用者的登入 shell。
- 滿足使用者的需求(想要使用特定的 shell),尤其是那些具有管理許可權的使用者。
下面來看一下Linux系統中所有可用的shell。
下面是改變shell需要牢記的一些點:
- 一個使用者能夠改變他們自己的shell為任何shell,但是前提這個shell要在/etc/shells中要有。
- 僅僅只有root使用者有許可權更改shell在Linux中的/etc/shell檔案中找不到的shell。
- 如果一個使用者是被限制登入的,這個使用者的shell只有root使用者有許可權更改。
1,使用usermod修改
usermod是一個工具用於修改使用者賬號的資訊,這些資訊儲存在“/etc/passwd”中,下面我們通過 -s
或者 --shell
選項來改變使用者的shell。
下面來檢驗一下使用者的shell是否被修改了。
2,使用chsh命令進行修改
chsh 是一個命令列實用程式,使用 -s 或 –shell 選項更改登入 shell,如下所示。
下面通過重新登陸一下sharplee使用者來看一下shell改變了沒。
3,通過修改/etc/passwd檔案實現
下面通過文字編輯工具,來修改/etc/passwd檔案,實現改變使用者的shell。
總結:通過變更shell能夠實現使用者無法登入,改變shell為/sbin/nologin即可實現,還可以通過更改其它shell來增強bash能夠執行更多的命令互動。