【问题标题】:Do Linux capabilities partition the possible privileged operations?Linux 功能是否划分了可能的特权操作?
【发布时间】:2018-03-14 18:48:23
【问题描述】:

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

【问题讨论】:

    标签: linux linux-kernel linux-capabilities


    【解决方案1】:

    简短的回答是肯定的。

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

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

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

    【讨论】:

    • 事后看来,考虑到内核中可能没有“操作”的概念,我的问题似乎有点愚蠢。正如您似乎已经猜到的那样,我的意思是问任何系统调用是否可能需要多个功能,但您已经回答了,谢谢
    猜你喜欢
    • 2021-06-14
    • 2019-06-16
    • 2020-07-09
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 2015-11-13
    • 2018-09-28
    • 2021-12-27
    相关资源
    最近更新 更多