0

更准确地说,是否有任何操作可以使用多个功能来为进程提供必要的权限?

4

1 回答 1

3

简短的回答是肯定的。

我想说的总体模型是每个操作都由一个功能保护。但是,当然也有例外。浏览了一下 kernel/ 目录,我很快找到了一个例子。usermodehelpersysctl处理程序需要 CAP_SETPCAP 和 CAP_SYS_MODULE 功能才能更新其设置。

另一个需要考虑的因素:能力检查遍布内核代码,包括许多驱动程序。驱动程序编写者可以选择以他们认为最好的任何方式检查功能,因此很可能需要调用者持有多种功能。

最后,在许多其他情况下,单个操作可能会使用多个功能,即使它基本上只需要一个功能。例如,考虑一个系统调用,它需要一个能力作为基础,但也需要一个路径名参数来进行某些操作。我发现例如:带有选项和子选项的pr_ctl系统调用。这个调用从根本上需要。但是,它还需要对该文件的某些权限。但是,如果调用用户没有正确的凭据来访问该文件,则如果调用者有能力,则可以覆盖该权限。PR_SET_MMPR_SET_MM_EXE_FILECAP_SYS_RESOURCECAP_DAC_OVERRIDE

于 2018-03-14T20:56:17.470 回答