gpt4 book ai didi

linux - 如何找出一个进程需要哪些 linux 功能才能工作?

转载 作者:IT王子 更新时间:2023-10-29 00:26:09 27 4
gpt4 key购买 nike

我处在一个困难的境地,我不知道一个进程需要什么样的 linux 功能才能工作。找出所需上限的最佳方法或任何方法是什么?

我现在唯一能想到的就是使用 capsh 并删除进程的所有大写字母。然后该过程失败,我开始添加上限(通过删除 --drop=CAP_XZY)直到它起作用。

有更好的建议吗?

最佳答案

基于最近的 libcap2 更新

1:(短选项):getpcaps

描述:

来自 here :

getpcaps displays the capabilities on the processes indicated by thepid value(s) given on the command line.

示例:

$ getpcaps <PID>
PID: = cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap+i

2:(有点长的选项):/proc status and capsh

描述:

proc是一个进程信息伪文件系统,换句话说 - 一个目录,您可以在其中查看所有进程的信息。

关于capsh :

Linux capability support and use can be explored and constrained withthis tool. This tool provides a handy wrapper for certain types ofcapability testing and environment creation.
It also providessome debugging features useful for summarizing capability state.

示例:

$ cat /proc/<PID>/status | grep Cap

你会得到(在大多数系统上):

CapInh: 00000000a80425fb (Inherited capabilities)
CapPrm: 0000000000000000 (Permitted capabilities)
CapEff: 0000000000000000 (Effective capabilities)
CapBnd: 00000000a80425fb (Bounding set)
CapAmb: 000000000000000 (Ambient capabilities set)

使用 capsh 实用程序将十六进制数解码为功能名称:

capsh --decode=00000000a80425fb
0x00000000a80425fb=cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap

(*) 您可以使用以下命令下载 capsh:sudo apt-get install git libpcap-dev

关于linux - 如何找出一个进程需要哪些 linux 功能才能工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35469038/

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