Linuxで通常のユーザーログインをブロックまたは無効にする方法


システム管理者として、あなたはどこかの時点で必然的に予定されたシステムメンテナンスを実行するでしょう。数回、あなたのシステムはまた何らかの問題に遭遇するかもしれません、そしてあなたは問題を解決するためにそれを置くことを強いられるでしょう。どんな状況であっても、root以外の(普通の)ユーザーがシステムに接続するのを防ぐのは良い考えです。

この記事では、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 protected]. 

これで、すべてうまくいったかどうかをテストできます。下のスクリーンショットからわかるように、通常のユーザー tecmint はログインできません。

nologin Shellを使用してユーザーログインをブロックする方法

このメソッドは少し違った働きをします:ユーザーがシェルにアクセスするのをブロックするだけです。しかし、彼または彼女は、ユーザーがシステムに接続するためにシェルを必ずしも必要としない ftp などのプログラムを介してシステムにログオンできます。

さらに、特別なシナリオで特定のユーザーへのシェルアクセスをブロックすることもできます。

/etc/passwd ファイルのユーザーシェルを/bin/bashのようなものから変更するには、 chsh change shell )コマンドを使用します。 または/bin/sh から/sbin/nologin まではログインを拒否します。

# chsh -s /bin/nologin tecmint

ここでは、/bin/false ファイルを使用する必要があります。以下のコマンドは、ユーザーの tecmint's シェルを/bin/false に変更します(ユーザーがログイン認証情報を入力した後)。

$ sudo chsh -s /bin/false tecmint

以下の関連記事も読んでください。

  1. How to Enable and Disable Root Login in Ubuntu
  2. Resetting/Recovering Forgotten Root User Account Password in RHEL/CentOS 7
  3. How to Restrict SFTP Users to Home Directories Using chroot Jail
  4. How to Set and Unset Local, User and System Wide Environment Variables in Linux

それは今のところすべてです!このトピックに関してご質問やご意見がありましたら、下のコメントフォームをご利用ください。