syslogがユーザーである理由


15

をチェックすると/var/log、非常に奇妙なものが見つかります

me@me:~$ ls -lt /var/log |head -6 '
total 160368
-rw-r-----  1 syslog            adm              19919118 Jan 15 16:55 auth.log
-rw-r-----  1 syslog            adm             139702302 Jan 15 16:55 syslog
-rw-r-----  1 syslog            adm                191122 Jan 15 16:55 mail.log
-rw-r-----  1 syslog            adm               2210432 Jan 15 16:32 kern.log
-rw-r--r--  1 root              root              1741863 Jan 15 14:22 dpkg.log

最初の4つのログファイルの所有者はsyslogです。私のシステムにはユーザーが1人しかいないため、奇妙です。

me@me~$ users
me

ファイル名syslogがユーザーになるのはなぜですか?


6
システムに複数のユーザーがいることを保証します。「アカウントとホームディレクトリに関連付けられた人間のユーザー」を意味しますが、すべてのシステムの「ユーザー」の概念はそれよりも広範です。

しばらくしてご覧ください/etc/passwd。ルートを除く36人のロールユーザーをカウントします。また、試してみてくださいman users-コマンドの動作を(誤って)想定しています。
クリリス

回答:


26

システムにアクセスする際のセキュリティと許可に関係しています。

いいえ、自分のユーザーよりもはるかに多くのユーザーがいます。「root」、「daemon」、「bin」、「games」、「nobody」、および「list」があります。

やるmore /etc/passwdお使いのシステム上のユーザーのリストのため。「/ usr / sbin / nologin」の行がたくさん表示されます。つまり、自分のユーザーのようにログインで通常のユーザーとして使用することはできません。3番目の列はユーザ​​ーIDです。1000未満のすべてのユーザーIDは擬似ユーザーです。最初のsudoユーザー(システムをインストールしたユーザー)のデフォルトは1000です。

基本的に、ユーザーsyslogroot/var/log/が所有するディレクトリとして設定されたディレクトリを使用できます。ディレクトリのアクセス許可を侵害する必要がないように(つまり、アクセス許可を下げて他のユーザーが使用できるようにするため)、このユーザーを作成しました。

ApacheとMySQLのユーザーでも同じことが行われます(これらをインストールすると、www-dataユーザーとグループ、およびMySQLユーザーとグループが表示されます)が、負荷の多いものに使用されます。外部へのデバイスへのアクセスに使用されるグループ「ダイヤルアウト」があります。ユーザーはこのグループに追加され、ユーザーがこれらのデバイスを使用できるようになります。それ以外の場合は、アクセス許可拒否エラーが表示されます。2つの方法で機能します。ユーザーアクセスを拒否することは、グループを削除することを意味します。


ただし、その数は常に1000であったとは限りません。私は実際のユーザーのIDが20から始まったほど長い歴史を持つシステムに取り組んできました
。– kasperd

1
Ubuntuは常に1000から始まります。たとえば、Redhatは500から始まります
。– Rinzwind

はい。ただし、ユーザーは必ずしもローカルで作成されるとは限りません。私の場合、NISを介して受信されましたが、最近ではおそらくLDAPでした。
カスペルド

20歳から始まる実際のユーザーは、Debianベースのディストリビューションを真剣に破壊します。DebianベースのシステムのUID 0-99は、Debianプロジェクトによって特定の用途に静的に割り当てられます。
ピーターグリーン

1
@PaddyLandau / bin / falseは、通知せずにログインを終了します。nologinには、「このアカウントは現在利用できません。」というメッセージが表示されます。(/etc/nologin.txtがこの通知を保持しています)
Rinzwind

8

カーネルお​​よびその他のサービスによって作成されたログメッセージをさまざまなログファイル、コンソール、および/またはその他の宛先に書き込むsyslogサービスは、独自の特別なユーザーアカウントで実行されます。他の多くのサービスも同様です。これは、最小特権原則を実装することです

侵害されたサービスまたは障害のあるサービス(たとえば、攻撃者によって悪用されるバグのあるサービス、または原因となるバグのあるサービスは、望ましくないことをランダムに行うこと、または悪意のある開発者が悪意のあることを行うように意図的に設計されています)、各サービスがその操作に必要なもののみにアクセスできるようにします。

Unixのようなオペレーティングシステム(UbuntuなどのすべてのGNU / Linuxディストリビューションを含む)で、最も簡単に特権を割り当てることができます(ほとんどの場合、特定のファイルまたはファイルのようなものとの間で読み書きを行う権利があります)ユーザーおよびグループに基づくデバイスノード)。他にも可能性はありますが、多くの場合、より退屈でエラーが発生しやすく、特定のコンテキストでのみ機能します。

そのため、syslogサービスはsyslogユーザーアカウントで実行されます。たとえば、攻撃者がsyslogサービスを取得して、想定されていることの代わりに指示することができる場合、syslogサービスは制限されます(syslogによって強制されず、ユーザーアカウントに基づいてカーネルによって強制されます)ログファイル(syslogユーザーが書き込みアクセス権を持っている唯一のファイル)にのみ書き込むことは危険にさらされるため、役に立たないソフトウェア自体です。したがって、関連するファイルは他の(人間またはシステム)ユーザーの特定のセットのみが書き込み可能に設定されているため、攻撃者は侵害されたsyslogサービスを使用して、たとえば同じコンピューターでホストされるWebサイトまたはデータベースのコンテンツを変更することはできませんsyslogユーザーアカウントではなく、アカウント。

単にログファイルを削除/変更して「公開」ファイル(全員の「読み取り」アクセス許可)を読み取るよりも多くの害を引き起こすために、攻撃者は最初にカーネルまたは一部のソフトウェアの2番目のバグをさらに悪用する必要があります。これは、それを呼び出したユーザー(setuid)とは異なる特権で実行するためにインストールされ、追加の特権(特権エスカレーション)を取得します。


使用したusersコマンドは、そのmanページによると現在ログインしているユーザーのみを表示します。syslogユーザーはシステムユーザーであるため、ログインすることはないため、このリストには表示されません。ファイルを調べる/etc/passwdか、ここで説明する他の方法を使用して、システム上のすべての(人間とシステム)ユーザーのリストを取得できます。


7

syslogはファイルではないため。これは、システムデーモンとアプリケーションメッセージ(デバッグ、エラー、警告、情報)をファイルに保存するためにシステムが使用するデーモンです。

syslogの簡単な履歴については、こちらをお読みください

他のディストリビューション、たとえばRed Hat Linuxベースのディストリビューションでは、システムのsyslog出力はというファイルに保存されます/var/log/messages。構成に依存します。

Rinzwindが言うように、セキュリティ上の理由から、オペレーティングシステムのさまざまなコンポーネントは特定のユーザーで実行され、各ユーザーには独自の権限があります。たとえば、syslogには少なくとも/var/logフォルダに対する書き込み権限があります。

システムには多くのサービスがあり、通常は各サービスまたは少数のサービスグル​​ープにユーザーがいます。たとえば、apache get www-data|httpd|apache。通常、これらのデーモンユーザーは、セキュリティリークを避けるためにBashアクセスを取得しません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.