procfs

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Procfs and the translation is 100% complete.
Other languages:

procfs (process filesystem、プロセスファイルシステム) は、システムとプロセスの情報を、表示および変更するために利用することができる、仮想 (ディスク容量を取らない) ファイルシステムです。カーネルによって生成され、/proc にマウントされます。

sysfs はよく似た、より新しい実装で、procfs の要素を次々に置き換えていっています。

インストール

カーネル

次のカーネルオプションを有効化してください:

カーネル procfs サポートを有効化する
File systems  --->
    Pseudo filesystems  --->
        <*> /proc file system support

設定

OpenRC

/proc は OpenRC の /lib/rc/sh/init.sh によってマウントされます[1]:

user $mount | grep proc
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

init サービス /etc/init.d/procfs はランレベル boot に属します:

user $/sbin/rc-update | grep procfs
procfs | boot

PID ディレクトリへのアクセスを制限する

procfs は、/proc/<pid> ディレクトリへの他のユーザからのアクセスを制限するための、hidepid マウントオプションを提供しています。これは、悪意のあるローカルユーザが他のユーザのプロセスについての情報を収集するのをより難しくすることができる、ハードニング手法です[2]

説明
hidepid=0 /proc/<pid>/* に置かれたファイルは、誰でも読むことができるでしょう。これがデフォルトの動作です。
hidepid=1 /proc/<pid> ディレクトリはすべてのユーザに見えますが、ユーザは自身が所有する /proc/<pid> ディレクトリにのみアクセスできます。これにより、機密情報を含むかもしれない /proc/<pid>/cmdline などのファイルが保護されるでしょう。
hidepid=2 hidepid=1 と同様の保護に加え、他のユーザの /proc/<pid> ディレクトリが隠されます。root 以外のすべてのユーザからプロセス情報が見えなくなるので、wheel グループに属するユーザなど、特権ユーザにアクセスを許可したい場合に便利かもしれません。

/proc/ をマウントするときに、自動で hidepid マウントオプションを使用するように設定することができます。例えば:

ファイル /etc/fstabwheel グループに属さないユーザに対してプロセス情報を隠す
proc     /proc     proc     nosuid,nodev,noexec,hidepid=2,gid=wheel     0 0

使い方

各ファイルの目的の説明については、Wikipedia の記事を参照してください。

情報を読むためには cat を使用してください。例えば、次のコマンドで現在実行中のカーネルのバージョンを取得できます:

user $cat /proc/version

実行時に値を設定する (可能であれば) には echo を使用してください。例えば、次のコマンドでマジック SysRq キーを有効化することができます:

root #echo 1 > /proc/sys/kernel.sysrq

sysctl

関連
Sysctl の使い方についての情報は Sysctl で得られます。

関連項目

参照