一般的なLinuxシステムには、システムの実際のユーザーアカウントだけでなく、さまざまなシステムアカウントもあります。
/etc/passwd
アカウントを定義できるファイル(デーモンなど)やその他のリソースはありますか?
アカウントがサービスアカウントに偽装される可能性があるという話を聞き、自分のコンピュータで同様のアカウントを見つけようとします。
答え1
デーモンユーザーは、実際のユーザーと同じファイルにリストされます。 「/etc/passwd
デーモンに似たファイル」は/etc/passwd
。
人間とシステムユーザーの間に正式な定義はありません。カーネルは気にしません(UID 0を持つユーザーに多くの権限を与えることに加えて)。ほとんどの管理コマンドも問題ありません。いくつかの一般的な違いは次のとおりです。
- 人間のユーザーは「ジョン・ドー」のような実際の名前を持ち、システム・ユーザーは「ナサル・デーモン」のような説明的な名前を持っているか、まったく持っていません。
- 人間のユーザーには、実際のログインシェル(またはまたは
/bin/sh
)があります。一部のシステムユーザーはシェルを持っていますが(ほとんど常に)、使用方法によっては他のシステムユーザーはそうではありません(シェルが必要です)。/bin/bash
/bin/csh
/bin/sh
su foo
foo
- 人間のユーザーは通常パスワードを持っていますが、必ずしもそうではありません。たとえば、リモートユーザーだけがSSHキーのみを持つことができます。最新の unice では、パスワードは
/etc/passwd
他のファイルにありません/etc/shadow
。 /home
人間のユーザーのホームディレクトリは通常(または一部のサイト固有の場所)にありますが、システムユーザーのホームディレクトリは通常、場所がないか存在しない可能性があります/home
(例外があります)。- ほとんどのサイトでは、システムユーザーのユーザーIDの範囲を指定し、人間のユーザーには別の範囲を指定します。通常、100–65533 または 500–65533 または 1000–65533 が予約されており、ほとんどのディストリビューションは 500 または 1000 から始まる実際のユーザー ID を割り当てるように設定されます。
複数のコンピュータがアカウントを共有するサイトには、通常、ユーザーのリストを含む中央サーバーがあります。国家庭園またはLDAP。passwd
アイテム/etc/nsswitch.conf
ユーザー情報を検索する場所を指定します。システムユーザーがローカルにあり、/etc/passwd
ネットワーク全体のデータベースに物理ユーザーがあることが一般的ですが、ネットワーク全体のデータベースにシステムユーザーがあり(一貫したUIDを強制し、サーバーとデータの複製を容易にするため)、人がいることがあります。ローカルファイルのユーザー(ネットワークがハングしてもログインしたまま)
システムユーザーとして偽装する人がアクセスできるアカウントには通常、実際の名前はありませんが、ログインシェル、パスワードセット、SSHキー、システム全体のユーザーIDがあります。実際、実際のシステムアカウントを使用する方が良い変装であり、そのアカウントを削除すると一部のサービスの動作が停止します。しかし、潜在的な攻撃を検出するために厳格で迅速なルールを持つことはできません。定義によると、攻撃者はルールに従わない。
答え2
個別のカスタムファイルを持つ理由はありません。システムユーザーと実際のユーザーは技術的に分離されていませんが、UID範囲を取得して組織的に分離されます。文書を見てください/etc/login.defs
。私のopenSUSEには次のものがあります。
SYSTEM_UID_MIN 100
SYSTEM_UID_MAX 499
UID_MIN 1000
UID_MAX 60000
展開ツールはこれらの値を使用して2つのグループを区別します。ただし、UID 300でユーザーアカウントを作成すると、ログインメニューに表示されないことがありますが、他のアカウントと同様に使用できます。
答え3
ユーザーアカウントとシステムアカウントを本当に分離したい場合(他の投稿のコメントを読んでこれを疑問に思うようです)、すべてのシステムユーザーをデータベースfiles
(例:/ etc / passwd)に保存し、2番目のデータベースにユーザーを追加します。 (LDAPの実行に似ています)。
これを行うには、Berkeley DB NSSモジュール(glibcという追加のglibcパッケージを介して多くのシステムで利用可能nss_db
)を使用できます。どのOSを使用しているのかわかりませんが、このサイトではLinuxに関するいくつかの情報を提供します。http://www.linuxfromscratch.org/hints/downloads/files/nss_db.txt
文書が広範囲ではないので、これは心が弱い人のためではありませんが、このようなことがどのように機能するかをもっと詳しく知りたい場合は、試してみるのは楽しいでしょう。 (@ Hauke Lagingの独自の実装に関するアドバイスも素晴らしいです)。
答え4
ほとんどのデーモンはrootとして実行され、セキュリティ上の理由で害を及ぼす能力を制限するためにいくつかの独自のユーザーとして実行されます。/etc/passwd
ファイルにリストされています。ほとんどのディストリビューションは、手がかりを提供するために、「システムユーザー」のUIDを500または1000などの特定の値に制限します。一部のデーモンには「デーモン」を意味するGECOS(ユーザー説明)エントリがあり、他のデーモンには奇妙なシェルがあります。ただし、NFSやその他の目的のための仮想ユーザーもあります。