/ sys / kernel / debug / tracingに「cd」すると、権限が変更されます


10

今日私は本当に奇妙な問題に直面しました、そしてそれについて全く無力です。

私が管理するサーバーの一部はNagiosで監視されています。最近、私はこのエラーでディスク使用プローブが失敗するのを見ました:

ディスククリティカル-/ sys / kernel / debug / tracingにアクセスできません:権限が拒否されました

私は調査したかった、そして私の最初の試みはこのディレクトリ許可をチェックして、そしてこれらを他のサーバー(うまく機能している)と比較することでした。作業サーバーで実行たコマンドを次に示します。cdディレクトリに移動するとすぐに、そのアクセス許可が変更されます。

# Here we've got 555 for /sys/kernel/debug/tracing
root@vps690079:/home/admin# cd /sys/kernel/debug
root@vps690079:/sys/kernel/debug# ll
total 0
drwx------ 30 root root 0 Jul 19 13:13 ./
drwxr-xr-x 13 root root 0 Jul 19 13:13 ../

dr-xr-xr-x  3 root root 0 Jul 19 13:13 tracing/
drwxr-xr-x  6 root root 0 Jul 19 13:13 usb/
drwxr-xr-x  2 root root 0 Jul 19 13:13 virtio-ports/
-r--r--r--  1 root root 0 Jul 19 13:13 wakeup_sources
drwxr-xr-x  2 root root 0 Jul 19 13:13 x86/
drwxr-xr-x  2 root root 0 Jul 19 13:13 zswap/

# I cd into the folder, and it (./) becomes 700!!
root@vps690079:/sys/kernel/debug# cd tracing/
root@vps690079:/sys/kernel/debug/tracing# ll
total 0
drwx------  8 root root 0 Jul 19 13:13 ./
drwx------ 30 root root 0 Jul 19 13:13 ../
-r--r--r--  1 root root 0 Jul 19 13:13 available_events
-r--r--r--  1 root root 0 Jul 19 13:13 available_filter_functions
-r--r--r--  1 root root 0 Jul 19 13:13 available_tracers


# Next commands are just a dumb test to double-check what I'm seeing
root@vps690079:/sys/kernel/debug/tracing# cd ..
root@vps690079:/sys/kernel/debug# ll
total 0
drwx------ 30 root root 0 Jul 19 13:13 ./
drwxr-xr-x 13 root root 0 Sep 27 10:57 ../

drwx------  8 root root 0 Jul 19 13:13 tracing/
drwxr-xr-x  6 root root 0 Jul 19 13:13 usb/
drwxr-xr-x  2 root root 0 Jul 19 13:13 virtio-ports/
-r--r--r--  1 root root 0 Jul 19 13:13 wakeup_sources
drwxr-xr-x  2 root root 0 Jul 19 13:13 x86/
drwxr-xr-x  2 root root 0 Jul 19 13:13 zswap/

何がこの動作を引き起こす可能性があるかについて何か考えがありますか?
補足:chmodを使用して権限を再確立しても、プローブは修正されないようです。


1
端末入力のサンプルを提供するときは、標準ではないエイリアスllを、それらが表すコマンドなどで置き換えることを検討してください。
Roman Odaisky

2
@RomanOdaiskyこれは、Ubuntuのデフォルトのエイリアスです。デフォルトではないことを知らなかったかもしれません
GammaGames

@tecloMの発言に加えて、これはカーネルバージョンのカーネルバグのように見えます。4.19.0-4では、動作は正常です。
V13

回答:


20

/ sys

/sysisはsysfs、現在のシステムカーネルとハードウェア構成を反映し、実際のディスク領域を消費しない、メモリ内のカーネル構造を完全に仮想化したビューです。新しいファイルとディレクトリを通常の方法で書き込むことはできません。

ディスクスペースモニタリングを適用しても、有用な情報は得られず、労力の無駄になります。内部に他のRAMベースの仮想ファイルシステムのマウントポイントがある場合があります...

/ sys / kernel / debug

/sys/kernel/debugは、の標準のマウントポイントですdebugfs。これは、さまざまなカーネルデバッグおよびトレース機能用のオプションの仮想ファイルシステムです。

これはデバッグ機能用であるため、本番環境では不要であると考えられます(一部の機能を拡張システム統計などに使用することもできます)。

debugfswill が提供する機能を使用するには、ほとんどの場合、rootとにかく必要があり、その主な目的は、カーネル開発者がデバッグ情報を提供する簡単な方法であることから、少々「大雑把」かもしれません。

カーネルが読み込まれると、カーネルトレースサブシステムの初期化ルーチンは、/sys/kernel/debug/tracingそれ自体がdebugfsアクセスポイントとして登録され、初めて実際にアクセスされるまで初期化を延期します(判明した場合に備えて、トレースサブシステムのリソース使用量を最小限に抑えます)必要ありません)。いつcdディレクトリに「D、この延期の初期化がトリガとトレースサブシステムは、使用のために自分自身を準備されました。実際、オリジナル/sys/kernel/debug/tracingは実体のないミラージュでしたが、cdコマンドでアクセスしたとき(そしてそのため)だけが「リアル」になりました。

debugfs 実際のディスク領域はまったく使用しません。その中に含まれているすべての情報は、カーネルがシャットダウンすると消えます。

/ sys / fs / cgroup

/sys/fs/cgroupは、tmpfsRAMベースのファイルシステムで、実行中のさまざまなプロセスをコントロールグループにグループ化するために使用されます。実際のディスク領域はまったく使用しません。しかし、このファイルシステムが何らかの理由でほぼ満杯になっている場合は、単にディスク領域が不足するよりも深刻な場合があります。

a)RAMが不足している

b)ルートが所有するプロセスがにゴミを書き込んでいる/sys/fs/cgroup、または

c)何かが、おそらく古典的な「フォーク爆弾」のスタイルで、systemdベースのサービスまたは類似のものを使用して、本当に不合理な数のコントロールグループを作成させている。

ボトムライン

/sys/sysもディスクに保存されていないため、ディスク使用状況プローブは除外されているはずです。

を監視する必要がある場合/sys/fs/cgroupは、汎用のディスクスペースプローブよりも意味のあるアラートを提供する専用のプローブを提供する必要があります。


1
必要なだけ詳細に回答していただきありがとうございます。/sys監視範囲から除外します。
zessx

1
@zessx:また、除外/procします/dev(100%RAMでバックアップされていない場合でも、一方ではさまざまな方法で「奇妙」なファイルとディレクトリが多数含まれているため、実際にはで大量のディスク領域を消費し/devます。セットアップがひどく壊れているので、全体を混乱状態にしてください。)
ケビン

/syssysfs、完全にRAMベースの仮想ファイルシステムです」–の内容はsysfsカーネル内のデータ構造から100%合成され、RAMのどこかに存在しないと確信しています。実際、「RAMベースの仮想ファイルシステム」は矛盾していると主張します。RAMベースである、つまりバッキングストアがある(ファイルシステムの非常に非従来的なバッキングストアであっても)場合、それは仮想ではない、または仮想である場合、バッキングストアはありません。
イェルクWミッターク

1
@JörgWMittag私sysfsがRAMdiskであると言うことを非常に慎重に避けたことに注意してください。とにかく、RAM内にない場合でも、カーネル内のデータ構造はどこにありますか?Linuxカーネルのすべてのファイルシステムドライバーの上に、別の意味で「仮想」を使用するVFS(仮想ファイルシステム)レイヤーがあることに気づくかもしれません。可能なすべてのファイルシステムの統一された抽象化。しかし、これは主要な点を定着させるための背景情報にすぎないため、実際のファイルシステムとはどのように異なり、正確に説明することは困難です。procsysfs
telcoM

1
@grawity表現を少し調整しましたが、今のほうがいいですか?
telcoM
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.