如何在 Linux 中禁用對用戶帳戶的 Shell 訪問

默認情況下,在 Linux 中創建用戶帳戶時,用戶將明確具有 SSH 訪問權限。 在某些情況下,用戶帳戶不需要對 FTP、郵件或 ssh 的 shell 訪問。

在本教程中,讓我們學習如何禁用現有 Linux 用戶的 shell 訪問權限或創建一個沒有 shell 訪問權限的新用戶。

創建一個沒有 shell 訪問權限的新用戶

默認情況下,在創建用戶帳戶時,會根據 /etc/default/useradd 文件中的定義為用戶分配一個 shell。

在創建用戶帳戶時,您可以明確指定用戶應該登錄的 shell。

Linux 附帶一個 /sbin/nologin shell,當用戶嘗試連接時,它會顯示一條消息“此帳戶當前不可用”。 這是禁止用戶訪問登錄 shell 的一種方法。

讓我們檢查兩個命令來創建一個禁用 shell 的用戶。

使用用戶添加:

句法:

useradd -s /sbin/nologin {用戶名}

使用添加用戶:

句法:

adduser –shell /sbin/nologin {用戶名}

為現有用戶禁用 Shell

要為現有用戶更改 shell,請使用 chsh 或 usermod 命令。

使用 chsh:

句法:

chsh -s /sbin/nologin {用戶名}

要將名為 bob 的用戶的 shell 更改為 nologin,請鍵入:

$ sudo chsh -s /sbin/nologin 鮑勃

使用用戶模式:

句法:

usermod {用戶名} -s {shell 路徑}

要將名為 bob 的用戶的 shell 更改為 /sbin/ftpnologin,請鍵入:

$ sudo usermod bob -s /sbin/ftpnologin

您可以自定義外殼以在用戶通過 ftp 登錄時顯示消息。

cat /sbin/ftpnologin !/bin/sh 沒有外殼訪問。 只允許 FTP 訪問。

要授予可執行權限,請鍵入:

$ sudo chmod a+x /sbin/ftpnologin

所有 shell 都在 /etc/shell 中,將新 shell 附加到此列表中:

$ echo “/sbin/ftpnologin” | sudo tee -a /etc/shells

您可以通過編輯 /etc/password 文件手動更改 shell,而不是執行上述方法,這也可以。

結論

在本教程中,我們學習瞭如何禁用用戶帳戶訪問默認 shell。 謝謝閱讀。