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

推薦する

JavaScript で配列の変更を監視する方法

序文以前、defineProperty を紹介したとき、オブジェクトの変更のみを監視でき、配列の変更...

デジタル時計効果を実現するJavaScript

この記事の例では、JavaScriptでデジタル時計効果を実装するための具体的なコードを参考までに共...

React Native が「NSArray<id<RCTBridgeModule>>型のパラメータを初期化できません」というエラーを報告する (解決方法)

最近、古い RN プロジェクトを Xcode で実行すると、次のコード エラーが報告されました。 &...

Docker Docker の保存場所を変更する コンテナイメージのサイズ制限を変更する操作

これは新しいバージョンではもう不可能なようで、推奨されません。そうでない場合は、ソフト リンクを直接...

HTMLノードの追加と削除の簡単な例

HTML ノードの追加と削除の簡単な例 HTML ノードの追加と削除の簡単な例<input t...

EasyUEFI を使用して Windows 10 で USB ドライブなしで Ubuntu 18 をインストールする

1. BIOSを確認するまず、コンピュータの起動モードを確認します。win+R と入力し、msinf...

DockerでGPUを使用するプロセスの詳細な説明

目次tf-gpu をダウンロード取得したtf-gpuイメージに基づいて独自のイメージを構築するイメー...

MySQL binlog の解析

目次1. binlogの紹介2. Binlog関連のパラメータ3. バイナリログの内容を分析するIV...

MySQL での置換例の詳細な説明

MySQL での置換例の詳細な説明replace into は insert と似ていますが、rep...

JavaScript イベント キャプチャ バブリングとキャプチャの詳細

目次1. イベントの流れ1. コンセプト2. DOMイベントフロー2. イベントの委任1. イベント...

VueはOpenLayersを使用してTiandi MapとAmapを読み込み

目次1. 世界地図1. VueにOpenLayersをインストールする2. アマップ1. 世界地図1...

Linux で boost.python を使用して C++ 動的ライブラリを呼び出す方法

序文最近、C++ 動的ライブラリをテストするためにロボット フレームワークを使い始めました。ロボット...

Vue3 ベースのスクリプト設定構文 $refs の使用

目次1. Vue2 構文2. Vue3の使用1. コンポーネントのref値を設定する2. コンポーネ...

JavaScript の setTimeout と setTimeinterval の使用例の説明

どちらの方法も、一定時間後に JavaScript コードを実行するために使用できますが、それぞれに...

フロア効果を実現するためのJavaScript

この記事では、フロア効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します。...