在另一个用户的进程上运行“perf top”

在另一个用户的进程上运行“perf top”

我们有一个 CentOS 7 系统,其中有两个用户帐户:

  • 莎莉,负责生产工作。
  • Tanya,用于监控和交互式工作。

Sally 运行 Tanya 需要使用 来监控的特定作业perf top。 Tanya 尝试运行perf top -p PID,但退出时出现错误:

You may not have permission to collect stats.
Consider tweaking /proc/sys/kernel/perf_event_paranoid:
 -1 - Not paranoid at all
  0 - Disallow raw tracepoint access for unpriv
  1 - Disallow cpu events for unpriv
  2 - Disallow kernel profiling for unpriv

我们设置perf_event_paranoid0-1,但出现了同样的错误。

Sally 愿意让 Tanya 监控她的所有流程。只启用这个 PID 也可以(例如,Sally 可以在每次启动进程后运行一个脚本,以启用 Tanya 的监控......只要他们知道在该脚本中编写什么内容)。

如果我们讨论 GDB,答案似乎是gdbserversudo。有没有什么方法可以用来perf监控Sally的工作而不成为Sally?莎莉和坦尼娅彼此信任,但除非绝对必要,否则宁愿不使用假冒行为。

相关内容