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 子テーブルで外部キー制約チェックを無効にする方法

推薦する

さまざまなSQL結合を簡単に学ぶ

SQL JOIN 句は、テーブル間の共通フィールドに基づいて 2 つ以上のテーブルの行を結合するため...

MySQL エラー: ロックを取得しようとしたときにデッドロックが見つかりました。トランザクションの解決策を再起動してください

問題を見つける最近、以前のデータを入力していたときに、プログラムが突然次のエラーを報告しました。 [...

超大型フォントを使用した 40 の Web ページ デザイン

今日の Web デザインでは、非常に大きなフォントが表示される傾向があります。これらのオープンソース...

Ubuntu環境でxdebugをコンパイルしてインストールする方法

この記事では、Ubuntu 環境で xdebug をコンパイルしてインストールする方法について説明し...

JS はシンプルな todoList (メモ帳) 効果を実装します

メモ帳プログラムは、HTML + CSS + JavaScript の 3 つの主要なフロントエンド...

Tomcat プロセスの CPU 使用率が高い場合の解決策

目次場合コンテキスト切り替えのオーバーヘッド?要約するCPU は多くの場合、システム パフォーマンス...

DockerにMinIOをインストールするための詳細な手順

目次1. docker環境が正常かどうかを確認する2. miniIOイメージをダウンロードする3. ...

Better-scrollはメニューとコンテンツをリンクする効果を実現します

1. 基本的な使い方 <!DOCTYPE html> <html lang=&qu...

VMware での Ubuntu と Windows 間のファイル共有

この記事では、VMware 環境下で Ubuntu と Windows 間でファイルを共有する方法を...

JS正規RegExpオブジェクトについての簡単な説明

目次1. RegExpオブジェクト2. 文法2.1 定義2.2 修飾子2.3 角括弧2.4 メタ文字...

MySQL で指定した桁数の乱数を生成する方法と、バッチで乱数を生成する方法

1. まず、よく使われるMySQL関数をいくつか紹介しますRAND() は 0 から 1 (0<...

Dockerのクイックガイド

Docker は、安全で繰り返し可能な環境でソフトウェアを自動的にデプロイする方法を提供し、コンピュ...

Vueのフロントエンドとバックエンドのデータのやり取りと表示を理解する方法

目次1. 技術概要2. 技術的な詳細1. インターフェースからバックエンドデータを取得する2. フロ...

Vue3 (パート 2) Ant Design Vue の統合

目次1. Ant Design Vueを統合する2. コンポーネントの使用1. 完全な引用2. コン...