cap_dac_override 是 cap_dac_read_search 的超集吗?
Is cap_dac_override a superset of cap_dac_read_search?
我正在努力限制现有的复杂应用程序的功能,并且我一直在寻找可靠的来源来证明这一点
cap_dac_override
中包含的权限是 cap_dac_read_search
的超集。
,事实确实如此,这似乎合乎逻辑
CAP_DAC_OVERRIDE
* Bypass file read, write, and execute permission checks.
CAP_DAC_READ_SEARCH
* Bypass file read permission checks and directory read and execute permission checks;
* invoke open_by_handle_at(2);
* use the linkat(2) AT_EMPTY_PATH flag to create a link to a file referred to by a file descriptor.
此外,我的能力检查跟踪器实验证实 cap_dac_override
应该足够了。每次执行读取访问时,cap_dac_read_search
似乎都在 cap_dac_override
之前被检查。
我还在 grsecurity forums 上发现了以下 post,不幸的是,它只涉及 /proc
:
The way the upstream kernel works is by first checking for CAP_DAC_OVERRIDE and then for CAP_DAC_READ_SEARCH for this case.
如果我想授予我的应用程序对整个文件系统的完整读取访问权限,我仍然不确定省略 cap_dac_read_search
是否完全安全。我完全知道 cap_dac_override
额外授予写入权限,我想要那个。
有没有可能在内核的某个地方有一个地方只检查 cap_dac_read_search
而不是 cap_dac_override
?
为了安全起见,我是否应该包括这两种功能,或者在这种情况下 cap_dac_read_search
完全多余?
经过一些额外的验证和实际测试,似乎 cap_dac_override
确实是 cap_dac_read_search
的超集。
当 cap_dac_read_search
从有问题的应用程序中删除时,没有一个操作因权限被拒绝而失败。
不,不是。 CAP_DAC_OVERRIDE
只允许忽略文件的权限位。 CAP_DAC_READ_SEARCH
允许忽略 read 权限位,并且还允许执行系统调用 open_by_handle_at
可用于在容器 chroot 外部读取。
实际应用参见https://github.com/gabrtv/shocker。
如果您的应用程序只需要对文件系统的完全访问权限,那么 CAP_DAC_OVERRIDE
正如您已经得出的结论。
我正在努力限制现有的复杂应用程序的功能,并且我一直在寻找可靠的来源来证明这一点
cap_dac_override
中包含的权限是 cap_dac_read_search
的超集。
CAP_DAC_OVERRIDE
* Bypass file read, write, and execute permission checks.CAP_DAC_READ_SEARCH
* Bypass file read permission checks and directory read and execute permission checks;
* invoke open_by_handle_at(2);
* use the linkat(2) AT_EMPTY_PATH flag to create a link to a file referred to by a file descriptor.
此外,我的能力检查跟踪器实验证实 cap_dac_override
应该足够了。每次执行读取访问时,cap_dac_read_search
似乎都在 cap_dac_override
之前被检查。
我还在 grsecurity forums 上发现了以下 post,不幸的是,它只涉及 /proc
:
The way the upstream kernel works is by first checking for CAP_DAC_OVERRIDE and then for CAP_DAC_READ_SEARCH for this case.
如果我想授予我的应用程序对整个文件系统的完整读取访问权限,我仍然不确定省略 cap_dac_read_search
是否完全安全。我完全知道 cap_dac_override
额外授予写入权限,我想要那个。
有没有可能在内核的某个地方有一个地方只检查 cap_dac_read_search
而不是 cap_dac_override
?
为了安全起见,我是否应该包括这两种功能,或者在这种情况下 cap_dac_read_search
完全多余?
经过一些额外的验证和实际测试,似乎 cap_dac_override
确实是 cap_dac_read_search
的超集。
当 cap_dac_read_search
从有问题的应用程序中删除时,没有一个操作因权限被拒绝而失败。
不,不是。 CAP_DAC_OVERRIDE
只允许忽略文件的权限位。 CAP_DAC_READ_SEARCH
允许忽略 read 权限位,并且还允许执行系统调用 open_by_handle_at
可用于在容器 chroot 外部读取。
实际应用参见https://github.com/gabrtv/shocker。
如果您的应用程序只需要对文件系统的完全访问权限,那么 CAP_DAC_OVERRIDE
正如您已经得出的结论。