Linux-Kernel
更改“perf_event_paranoid”的安全隱患
我想使用該
perf
實用程序為我的程序收集測量值。它在 Debian 9 的共享集群機器上執行,預設情況下/proc/sys/kernel/perf_event_paranoid
設置為 3,因此不允許我收集測量值。在更改它之前,我想知道這意味著什麼。是否只是安全性允許其他使用者分析其他用途執行的內容並因此獲得洞察力?我們不關心這一點,因為它無論如何都是使用者的核心圈子。還是可能是性能,這也會影響其他所有人?
這只是安全性,性能不受影響(至少,當
perf
不執行時;即使那樣,perf
’ 的影響應該是最小的)。更改perf_event_paranoid
不會改變系統的性能特徵,無論是否perf
正在執行。核心文件中有關於安全含義的
perf
詳細討論。那裡的建議是為有權訪問的使用者設置一個組perf
,並perf
為該組設置適當的功能,而不是更改perf_event_paranoid
:cd /usr/bin groupadd perf_users chgrp perf_users perf chmod o-rwx perf setcap cap_sys_admin,cap_sys_ptrace,cap_syslog=ep perf
並將自己添加到
perf_users
組中。核心的 5.8 版添加了一個專用功能,因此
cap_sys_admin
可以將最後一個命令簡化為setcap cap_perfmon,cap_sys_ptrace,cap_syslog=ep perf