显示 htop 中所有进程的 I/O 速率?

显示 htop 中所有进程的 I/O 速率?

htop3.2.2以普通用户身份运行仅显示 I/O 速率 ( IO_RATE/ IO_READ_RATE/ IO_WRITE_RATE)一些流程,其他流程为“N/A”。

以 root 身份运行显示所有进程的 I/O。

如何配置 htop show I/O 速率全部以普通用户身份运行时的进程?

答案1

htop尝试读取/proc/pid/io每个进程的文件以获取 I/O 统计信息。

/proc/pid/io接近该部分的结尾proc(5)我们有:

访问此文件的权限由 ptrace 访问模式检查控制PTRACE_MODE_READ_FSCREDS;请参阅 ptrace(2)。

ptrace()可以授予一般权限CAP_SYS_PTRACE但我们还需要CAP_DAC_READ_SEARCH绕过文件读取权限检查访问ptrace()算法

setcap(8)可用于设置htop可执行文件的两种功能:

sudo setcap 'cap_sys_ptrace=ep cap_dac_read_search=ep' /usr/bin/htop

上限位可以通过以下方式验证:

sudo getcap /usr/bin/htop

...或者一起重置:

sudo setcap '' /usr/bin/htop

相关内容