Linuxでユーザーアカウントへのシェルアクセスを無効にする方法

Linuxでユーザーアカウントを作成する場合、デフォルトでは、ユーザーは明示的にSSHアクセス権を持ちます。 ユーザーアカウントがFTP、メール、またはsshへのシェルアクセスを必要としない状況があります。

このチュートリアルでは、既存のLinuxユーザーのシェルアクセスを無効にする方法、またはシェルアクセスのない新しいユーザーを作成する方法を学びましょう。

シェルアクセスのない新しいユーザーを作成する

デフォルトでは、ユーザーアカウントを作成するときに、/ etc / default / useraddファイルで定義されているようにシェルがユーザーに割り当てられます。

ユーザーアカウントを作成するときに、ログインするユーザーをシェルで明示的に指定できます。

Linuxには/ sbin / nologinシェルが付属しており、ユーザーが接続しようとすると、「このアカウントは現在利用できません」というメッセージが表示されます。 これは、ユーザーがログインシェルにアクセスできないようにする1つの方法です。

2つのコマンドをチェックして、シェルが無効になっているユーザーを作成しましょう。

useraddの使用:

構文:

useradd -s / sbin / nologin {ユーザー名}

adduserの使用:

構文:

adduser –shell / sbin / nologin {ユーザー名}

既存のユーザーのシェルを無効にする

既存のユーザーのシェルを変更するには、chshまたはusermodコマンドを使用します。

chshの使用:

構文:

chsh -s / sbin / nologin {ユーザー名}

bobという名前のユーザーのシェルをnologinに変更するには、次のように入力します。

$ sudo chsh -s / sbin / nologin bob

usermodの使用:

構文:

usermod {ユーザー名} -s {シェルパス}

bobという名前のユーザーのシェルを/ sbin / ftpnologinに変更するには、次のように入力します。

$ sudo usermod bob -s / sbin / ftpnologin

ユーザーがftp経由でログインしたときにメッセージを表示するようにシェルをカスタマイズできます。

cat / sbin / ftpnologin!/ bin / shシェルアクセスなし。 FTPアクセスのみが許可されます。

実行可能権限を付与するには、次のように入力します。

$ sudo chmod a + x / sbin / ftpnologin

すべてのシェルは/ etc / shellで利用できます。このリストに、新しいシェルを追加してください。

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

上記の方法を実行する代わりに、/ etc / passwordファイルを編集してシェルを手動で変更することもできますが、これも機能します。

結論

このチュートリアルでは、ユーザーアカウントがデフォルトのシェルにアクセスできないようにする方法を学びました。 読んでくれてありがとう。