Linux で通常のユーザーのログインをブロックまたは無効にする方法
システム管理者は、必ずどこかの時点で、計画されたシステム メンテナンスを実行することになります。場合によっては、システムに何らかの問題が発生し、問題を解決するためにシステムを停止せざるを得なくなることもあります。どのような状況であっても、非 root (通常) ユーザーがシステムに接続できないようにすることをお勧めします。
こちらもお読みください: Linux での SSH ルート ログインの無効化または有効化と SSH アクセスの制限
この記事では、Linux で /etc/nologin ファイルと nologin シェルを使用して非 root ユーザーのログインをブロックする方法について説明します。実際に何が起こっているのかをユーザーに説明するメッセージを設定する方法を見ていきます。
/etc/nologin ファイルを使用してユーザーのログインをブロックする方法
/etc/nologin ファイルの主な機能は、シャットダウンのプロセス中にシステムにログオンしようとしているユーザーにメッセージ (ファイルに保存されている) を表示することです。
メッセージがユーザーに表示されると、ログイン手順が終了し、ユーザーはシステムにログオンできなくなります。
これは、次のようにファイルを手動で作成することで、ユーザーのログインをブロックするために使用できます。
vi /etc/nologin
以下のメッセージをファイルに追加します。このメッセージは、システムにログオンしようとしているユーザーに表示されます。
The Server is down for a routine maintenance. We apologize for any inconvenience caused, the system will be up and running in 1 hours time. For more information, contact the system admin [email .
これで、すべてが機能するかどうかをテストできます。以下のスクリーンショットからわかるように、通常のユーザー tecmint
はログインできません。
nologin シェルを使用してユーザーのログインをブロックする方法
このメソッドの動作は少し異なります。ユーザーがシェルにアクセスすることをブロックするだけです。ただし、ftp などのプログラムを介してシステムにログオンすることはできます。このプログラムでは、ユーザーがシステムに接続するために必ずしもシェルを必要としません。
さらに、特別なシナリオでは、特定のユーザーへのシェル アクセスをブロックできます。
RHEL/CentOS/Fedora の場合
chsh (シェル変更) コマンドを使用して、/etc/passwd ファイル内のユーザー シェルを /bin/bash などから変更するだけです。
または /bin/sh
から /sbin/nologin
はログインを拒否することを意味します。
chsh -s /bin/nologin tecmint
Debian/Ubuntu の場合
ここでは、 /bin/false ファイルを使用する必要があります。以下のコマンドは、ユーザーのtecmint のシェルを /bin/false
に変更します。これは、(ユーザーがログイン資格情報を提供した後は) 何も行わないことを意味します。
sudo chsh -s /bin/false tecmint
以下の関連記事もお読みください。
- Ubuntu で root ログインを有効または無効にする方法
- RHEL/CentOS 7 で忘れた root ユーザー アカウントのパスワードをリセット/回復する
- chroot Jail を使用して SFTP ユーザーをホーム ディレクトリに制限する方法
- Linux でローカル、ユーザー、およびシステム全体の環境変数を設定および設定解除する方法
それは今のところすべてです!このトピックに関して質問や追加のアイデアがある場合は、以下のコメント フォームをご利用ください。