procfs
procfs ( proc ess f ile s ystem、プロセスファイルシステム) は、システムとプロセスの情報を、表示および変更するために利用することができる、仮想 (ディスク容量を取らない) ファイルシステム です。 カーネル によって生成され、 /proc にマウントされます。
sysfs はよく似た、より新しい実装で、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/fstab
wheel グループに属さないユーザに対してプロセス情報を隠す
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 で得られます。
関連項目
- sysfs — 仮想 ファイルシステム (仮想という言葉はディスクスペースを使用しないことを意味します) です。
- The proc filesystem (Security Handbook)
参照
- ↑ Bug 406263 – Remove the two lines concerning proc and shm since they don't reflect the /etc/fstab file that is default in current state3 installation 、 Gentoo's Bugzilla Main Page 、(最終更新) 2012 年 4 月 29 日。2015 年 10 月 23 日取得。
- ↑ Vasiliy Kulikov。 procfs: add hidepid= and gid= mount options 、 Linux kernel source tree 、2012 年 1 月 10 日。2015 年 7 月 31 日取得。