我处在一个困难的情况下,我不知道一个进程需要什么Linux功能才能工作。最好的方法是什么,或者找出所需的上限的任何方法?
我现在唯一能想到的就是使用capsh并降低进程中的所有上限。然后,该过程失败,我开始添加上限(通过删除–drop = CAP_XZY),直到它起作用为止。
还有更好的建议吗?
我之前在Brendan Gregg的这篇博客文章中遇到的另一种方法是使用功能跟踪器 功能 。
以下是示例输出:
$ sudo /usr/share/bcc/tools/capable
TIME UID PID COMM CAP NAME AUDIT
11:31:54 0 2467 capable 21 CAP_SYS_ADMIN 1
11:31:54 0 2467 capable 21 CAP_SYS_ADMIN 1
11:31:59 1000 2468 ls 1 CAP_DAC_OVERRIDE 1
11:31:59 1000 2468 ls 2 CAP_DAC_READ_SEARCH 1
11:32:02 0 1421 timesync 25 CAP_SYS_TIME 1
11:32:05 1000 2469 sudo 7 CAP_SETUID 1
11:32:05 0 2469 sudo 6 CAP_SETGID 1
它具有记录内核针对给定进程进行的功能检查的显着优势。这样就可以根据应用程序实际需要的功能来分析应用程序,例如,缩小特权范围并以非特权用户身份执行它。
尽管 pscap 允许列出所有正在运行的进程的 有效 功能,但它不能提供一种可靠的方法来检查该进程实际上需要哪些功能,因为:
对于源 能
可在github上。对于BCC(包括安装说明
能力
)都可以在这里。有关进一步的描述,请参阅开头提到的博客文章,也请注意,该功能需要内核4.4+,博客文章中也提供了较旧内核的替代方法。
注意:我不是作者,也不以任何方式隶属于工具开发人员。我只是想将它带给更广泛的受众,因为我亲自使用它来为复杂的监视应用程序开发功能配置文件,该应用程序以前需要运行完整的root特权才能运行,并且发现此跟踪器有很大帮助。
假设我有一个Docker容器来保存一些数据。我希望这些数据能够持久化--如果容器被停止、删除、升级等,我仍然希望这些数据位于主机OS文件系统中的一个可访问的位置。 那么,如何对正在挂载的目录设置正确的权限呢?
问题内容: 我认为这个问题已经存在,但是我找不到。 我不明白,为什么必须要有一个功能接口才能使用lambda。考虑以下示例: 这可以正常工作,但是如果您取消注释行,则不会。为什么?以我的理解,编译器应该能够区分这两种方法,因为它们具有不同的输入参数。为什么我需要一个功能接口并炸毁我的代码? 编辑:链接的重复项没有回答我的问题,因为我在询问不同的方法参数。但是在这里,我得到了一些非常有用的答案,这要
我正在使用HIbernate core 3.6.2 final。我将注释类映射放在hibernate中。cfg。xml,例如 由于我使用3.6.2的Hibernate版本,所以我不需要创建注释配置类对象。因此,我将配置对象创建为私有静态最终SessionFactory SessionFactory; 但给我错误作为初始SessionFactory创建failed.org.hibernate.Map
本文向大家介绍Redis 有哪些功能?相关面试题,主要包含被问及Redis 有哪些功能?时的应答技巧和注意事项,需要的朋友参考一下 数据缓存功能 分布式锁的功能 支持数据持久化 支持事务 支持消息队列
1、基于本机内存的缓存 当调用api访问数据库时,假如此过程需要2秒,如果每次请求都要访问数据库,那将对服务器造成巨大的压力,如果将此sql的查询结果存到Redis中,再次请求时,直接从Redis中取得,而不是访问数据库,效率将得到巨大的提升,Redis可以定时去更新数据(比如1分钟)。 2、如果电脑重启,写入内存的数据是不是就失效了呢,这时Redis还提供了持久化的功能。 3、哨兵(Sentin
有一个文件能统一管理哪些路由需要登录才能进入,哪些不用登陆也能进入查看。