Procfs/zh-cn

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

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 的元素

安装

内核

启用如下内核选项:

内核 Enable procfs support
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/时自动使用 例如:

文件 /etc/fstab对除Wheel中的用户之外的其他用户隐藏进程信息
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

See also

References