Unix/Linux システムにおける nobody ユーザーと nologin の詳細な紹介

Unix/Linux システムにおける nobody ユーザーと nologin の詳細な紹介

Unix/Linux システムの nobody ユーザーとは何ですか?

1. Windows システムはインストール後にいくつかのユーザー アカウントを自動的に作成します。Linux システムでは、Windows システムの組み込みアカウントと同様に、システムのインストール後に存在するユーザー アカウントもいくつかあります。

2. これらは、nobody や ftp などの特定のタスクを実行するために使用されます。LinuxSir.Org の Web プログラムにアクセスすると、公式 Web サイトのサーバーは、顧客が「nobody」(Windows システムの匿名アカウントに相当) としてログインすることを許可します。

匿名で ftp にアクセスする場合は、ユーザー ftp または nobody を使用します。

3. まず第一に、誰も特権ユーザーではなく、一般ユーザーではありません。 nobody ユーザー名を使用する「目的」は、誰でもシステムにログインできるようにすることですが、その UID と GID はいかなる権限も提供しません。つまり、uid と gid は誰でも読み取りおよび書き込み可能なファイルにのみアクセスできます。

4. 次に、多くのシステムでは、通常、デフォルトで nobody を作成し、「権限を最小限に制限」しようとします。サーバーが外部サービスを提供する場合、クライアントが nobody としてログインすることを許可する場合があります。

5. Nobody は通常のアカウントです。デフォルトのログイン シェルは '/sbin/nologin' であるため、このユーザーはシステムに直接ログインできません。つまり、ハッカーが脆弱性を利用してサーバーに接続し、損害を与えることは困難です。さらに、このユーザーの権限も非常に低く設定されています。そのため、セキュリティが高くなります。すべてに最小限の権限が与えられます。これが誰の存在の意味でもない。

Unix/Linux システムでユーザー シェルが /sbin/nologin である場合、それは何を意味しますか?

ユーザーのデフォルト シェルが /sbin/nologin に設定されている場合、このユーザーはシステムにログインできません。

nologin の機能は、特定のユーザーが ssh 経由でシェルにログインすることを制限することです。

たとえば、nginx、mysql、php-fpmなどのアプリケーションのユーザーのデフォルトシェルを/sbin/nologinに設定できます。

主にシステムセキュリティの向上のため

システム アカウントのシェルは /sbin/nologin を使用するため、パスワードを入力してもシステムにログインできません。

いわゆる「ログインできない」というのは、ユーザーが bash や他のシェルを使用してシステムにログインできないことを意味するだけであり、このアカウントがシステム リソースを使用できないことを意味するわけではありません。たとえば、さまざまなシステム アカウントのうち、印刷ジョブは lp アカウントによって管理され、www サーバーは apache アカウントによって管理されます。これらのアカウントはすべてシステム プログラム作業を実行できますが、ホストにログインすることはできません。

メール サービスなどの一部のサービスは、主にホストからのメールを受信するために使用され、ログインを必要としない場合があります。アカウントがシェルを取得するためにホストに接続しようとした場合、それを拒否できます。

場合によっては、/etc/nologin ファイルを使用して、他のユーザーのログインを一時的に禁止することができます。具体的な方法は、/etc/ ディレクトリに nologin という名前のファイルを作成することです。

例えば:

 #touch /etc/nologin

これにより、後続のユーザーがシステムにログインできなくなります。
ユーザーのログインが禁止されている場合、/etc/nologin ファイルの内容がユーザーに表示され、点滅します。

たとえば、/etc/nologin ファイルに次の内容を追加します。

#vi /etc/nologin
管理者によるログインを一時的に無効にします。

ユーザーがログインしようとすると、「一時的に管理者ログインを禁止します」というメッセージが表示されます。システムメンテナンスが完了すると、/etc/nologin ファイルは削除され、他のユーザーは再びログインできるようになります。これは、シェルにログインできるユーザーのみに限定されます。

ログイン シェルが /sbin/nologin であるユーザーには効果がありません。ユーザー自身がシェルにログインできないためです。

さらに、/sbin/nologin を持つユーザーにホストにログインできないことを知らせたい場合は、新しいファイル /etc/nologin.txt を作成し、ログインできない理由を記述します。ユーザーがログインすると、このファイルの内容が画面に表示されます。

例えば:

 #vi /etc/nologin.txt
 このアカウントはシステム アカウントまたはメール アカウントです。
 #su - メール

「このアカウントはシステム アカウントまたはメール アカウントです。」というメッセージが表示されます。

補充:

2 つのファイル /etc/nologin と /etc/nologin.txt の機能は同じではありません。

/etc/nologin ファイルが存在する場合、一般的な ID アカウントはログイン時に /etc/nologin の内容のみを取得し、ホストに直接ログインすることはできません。

つまり、/etc/nologin が作成され、その内容が「この Linux サーバーは.... を維持しています」に設定されている場合、ログインしようとするすべてのユーザーにこれらのプロンプトが表示され、システムにログインできなくなります。

/etc/nologin ファイルを削除した後でのみ、一般ユーザーは通常どおりログインできます。

要約:

Linux/Unixシステムでは誰も匿名ユーザーではなく、サーバー上の公開コンテンツにのみアクセスできます。

/sbin/nologin は Linux/Unix システムのシェル設定項目です。ログインシェルが /sbin/nologin であるユーザーはシステムにログインできません。

/etc/nologin.txt は、シェルが /sbin/nologin であるユーザーのみを対象としています。

/etc/nologinは一般ユーザー全員を対象としていると理解できる

以下もご興味があるかもしれません:
  • UNIX/LINUX SHELL 正規表現構文の詳細な説明と使用法
  • Linux および Unix サーバーのセキュリティを強化する方法
  • おすすめコレクション: 便利な Unix/Linux コマンド スキル
  • Supervisor のインストールと構成の詳細な説明 (Linux/Unix プロセス管理ツール)
  • Linux/Unix で Vim を再起動せずに .vimrc ファイルを再読み込みする手順
  • Linux シェル入門: Linux、OS X、Unix のシェル環境をマスターする
  • Linux/Unix で Perl モジュールをインストールする 2 つの方法
  • Unix/Linuxフォークの隠れたオーバーヘッド

<<:  js でクラスセレクターと名前属性セレクターを実装する手順の例

>>:  MySQL 子テーブルで外部キー制約チェックを無効にする方法

推薦する

MySQL5.7+ MySQL Workbenchのインストールと設定方法のグラフィックチュートリアル(MAC)

この記事では、主にMACオペレーティングシステムでのMySQL5.7とMySQLWorkbenchの...

jsを使用してカルーセル効果を実現する

今日は、参考までに、jsを使用してカルーセルマップの効果を実現する方法についてお話ししましょう。具体...

キャンバスでPS消しゴムスクラッチカードの効果を実現するためのJSの使用方法の詳細な説明

目次効果のデモンストレーション:メインJSコード実装 <div class="box...

WeChatアプレットは左にスワイプしてリスト項目を削除する効果を実現

この記事では、WeChatミニプログラムの具体的なコードを共有し、左にスワイプしてリスト項目を削除す...

WeChatミニプログラムのすべてのページがログインされていることを確認する方法

目次現状解決さらなる解決策やっと現状WeChat ミニプログラムには、ホームページ、個人ページ、いく...

MySQLにデータを素早くインポートする方法

序文:日々の勉強や仕事の中で、データをエクスポートする必要に迫られることがよくあります。たとえば、デ...

JSはモバイル端末の画面を1つずつ上下にスライドさせる機能を実装します

この記事では、モバイル端末を一度に1画面ずつ上下にスライドさせるためのJSの具体的なコードを参考まで...

MYSQL ログとバックアップおよび復元の問題の詳細な説明

この記事では、参考までにMYSQLログとバックアップとリストアについて紹介します。具体的な内容は以下...

MySQLがフルテーブルスキャンを実行するいくつかの状況

目次ケース1:ケース2:ケース3:簡単にまとめると:過去 2 日間で、完全なテーブル スキャンを引き...

CSSアニメーションを使用して背景のシームレスな無限ループを実装する例

1. 需要絵が左から右へ無限ループで動く2. コードモバイルデバイスに適用されているため、rem 単...

史上最も便利な Zookeeper サーバーの構築方法 (推奨)

ZooKeeperとはZooKeeper は、分散アプリケーションに効率的で可用性の高い分散調整サ...

CSSタグの表示モードの詳細な説明

ラベル表示モード(重要) divタグとspanタグ1. スタイルはまったく同じですが、ラベルが異なり...

MySQL ロック制御同時実行方法

目次序文1. 楽観的ロックバージョンフィールドを追加する2. 悲観的ロック読み取りロック完全なテーブ...

el-table カプセル化に基づくドラッグ可能な行と列、および選択列コンポーネントの実装

効果環境が必要ビュー要素UIドラッグアンドドロッププラグインSortable.js必要な構成プロパテ...

Vueでファジークエリを実装する方法の簡単な例

序文いわゆるファジークエリとは、ユーザーの完全な入力やすべての入力情報がなくてもクエリサービスを提供...