Procfs/zh-cn
From Gentoo Wiki
procfs (process filesystem) is a virtual filesystem (i.e. it takes up no disk space) that can be used to show and change system and process information. 它由 kernel 生成 并挂载在 /proc.
sysfs 是一种类似的 较新的实现 它越来越多地取代了 procfs 的元素
安装
内核
启用如下内核选项:
File systems --->
Pseudo filesystems --->
<*> /proc file system support
配置
OpenRC
/proc is mounted by OpenRC's /lib/rc/sh/init.sh[1]:
user $
mount | grep proc
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
初始化服务 /etc/init.d/procfs 进入运行级别 boot:
user $
/sbin/rc-update | grep procfs
procfs | boot
限制对 PID 目录的访问
procfs提供了 hidepid
的挂载选项 以限制其他用户对 /proc/<pid>的访问 . 这是一种强化技术,可以使恶意的本地用户更难收集有关其他用户进程的信息[2].
Value | Description |
---|---|
hidepid=0
|
位于 /proc/<pid>/* 的文件将是所有人可读的. 这是默认行为. |
hidepid=1
|
/proc/<pid>目录将对所有人可见, 但是用户仅可以访问他们拥有的 /proc/<pid> 目录. 这将保护例如/proc/<pid>/cmdline等可能包含敏感信息的文件 |
hidepid=2
|
与hidepid=1 相同 但隐藏其他用户的/proc/<pid>目录. 由于这将对除 root 之外的所有用户隐藏进程信息,因此允许特权用户例如wheel组的用户访问可能会很有用。
|
hidepid
挂载选项可以配置为挂载 /proc/时自动使用 例如:
proc /proc proc nosuid,nodev,noexec,hidepid=2,gid=wheel 0 0
使用
有关每个文件用途的描述 请参阅 Wikipedia article
使用 cat 读取信息. 例如,用户可以使用以下命令获取当前运行的内核的版本:
user $
cat /proc/version
使用 echo 在运行时设置值(如果可能)。 例如,用户可以使用以下命令启用 Magic SysRq :
root #
echo 1 > /proc/sys/kernel.sysrq
sysctl
另请参阅
Sysctl usage information is available at: Sysctl
Sysctl usage information is available at: Sysctl
See also
- sysfs — a virtual filesystem (virtual means it takes up no disk space).
- The proc filesystem (Security Handbook)
References
- ↑ 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, (Last modified) April 29th, 2012. Retrieved on October 23rd, 2015.
- ↑ Vasiliy Kulikov. procfs: add hidepid= and gid= mount options, Linux kernel source tree, January 10th, 2012. Retrieved on July 31st, 2015.