栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

我之前在Brendan Gregg的这篇博客文章中遇到的另一种方法是使用功能跟踪器 功能

以下是示例输出:

$ sudo /usr/share/bcc/tools/capableTIME      UID    PID    COMM  CAP  NAME      AUDIT11:31:54  0      2467   capable          21   CAP_SYS_ADMIN        111:31:54  0      2467   capable          21   CAP_SYS_ADMIN        111:31:59  1000   2468   ls    1    CAP_DAC_OVERRIDE     111:31:59  1000   2468   ls    2    CAP_DAC_READ_SEARCH  111:32:02  0      1421   timesync         25   CAP_SYS_TIME         111:32:05  1000   2469   sudo  7    CAP_SETUID111:32:05  0      2469   sudo  6    CAP_SETGID1

它具有记录内核针对给定进程进行的功能检查的显着优势。这样就可以根据应用程序实际需要的功能来分析应用程序,例如,缩小特权范围并以非特权用户身份执行它。

尽管 pscap 允许列出所有正在运行的进程的 有效 功能,但它不能提供一种可靠的方法来检查该进程实际上需要哪些功能,因为:

  • 进程可能在其允许的集合中具有能力X,并且仅在短时间内将其提升到有效的集合中才能执行特权操作。
  • 一个进程本可以从更广泛的功能集开始,进行需要提升特权的初始化,然后放弃某些(或全部)功能(例如ping打开原始套接字)。
  • 它仅适用于已经以基于功能的方式运行的进程。如果必须确定新开发的应用程序所需的最小功能集怎么办?
  • 它不允许将对应用程序进行的特权检查与它执行的操作相关联,并且 无法 获得每次检查的时间戳。

对于源
可在github上。对于BCC(包括安装说明
能力
)都可以在这里。有关进一步的描述,请参阅开头提到的博客文章,也请注意,该功能需要内核4.4+,博客文章中也提供了较旧内核的替代方法。


注意:我不是作者,也不以任何方式隶属于工具开发人员。我只是想将它带给更广泛的受众,因为我亲自使用它来为复杂的监视应用程序开发功能配置文件,该应用程序以前需要运行完整的root特权才能运行,并且发现此跟踪器有很大帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/403226.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号