ウェブサイト検索

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

以下の関連記事もお読みください。

  1. Ubuntu で root ログインを有効または無効にする方法
  2. RHEL/CentOS 7 で忘れた root ユーザー アカウントのパスワードをリセット/回復する
  3. chroot Jail を使用して SFTP ユーザーをホーム ディレクトリに制限する方法
  4. Linux でローカル、ユーザー、およびシステム全体の環境変数を設定および設定解除する方法

それは今のところすべてです!このトピックに関して質問や追加のアイデアがある場合は、以下のコメント フォームをご利用ください。