gpt4 book ai didi

linux - 来自 bash 进程的最后一次系统调用

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:08:36 28 4
gpt4 key购买 nike

只有在我有读取权限的情况下,我才需要从 bash 脚本中的进程获取最后一个系统调用。我这样做:

# $pid is the pid from the process
cat /proc/$pid/syscall

但是当我这样做时,我收到了这条消息:

cat: /proc/21/syscall: Permission denied

或者这个:

cat: /proc/2101/syscall: Operation not permitted

这样对吗?显然权限被拒绝意味着我无法阅读它。但是“不允许操作”是什么意思呢?

从一个过程中,我得到了这一行:

0 0x3 0x717000 0x10000 0x7ffca5422b00 0x0 0x79 0x7ffca5422c50 0x7f840be43810

哪个是最后一个系统调用?

最佳答案

关于Operation not permitted,是因为你对文件有读权限(进程归你所有),但是内核禁止你这样做。

如果在该错误出现后运行 dmesg,您将看到以下行:

ptrace of pid 12304 was attempted by: cat (pid 12342)

那是因为内核避免跟踪不是当前进程的子进程。这是通过 kernel.yama.ptrace_scope 配置选项控制的。如果你这样做

cat /proc/sys/kernel/yama/ptrace_scope

它的值为 1。

更多信息:https://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#ptrace

关于linux - 来自 bash 进程的最后一次系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32938885/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com