问题标签 [linux-capabilities]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1974 浏览

linux - yocto 的 Linux 功能

我想给几个文件 Linux 功能(例如 CAP_NET_ADMIN)。我正在使用 Yocto,我的文件系统应该是只读的,并且在刷新软件后不得更改(这意味着通常无法使用带有 setcap 的 pkg_postinst)。

有没有其他方法可以在启动目标后不更改文件结构的情况下赋予文件功能?

0 投票
1 回答
351 浏览

c++ - linux 重命名根拥有的文件的功能

对于某些组件测试,在我在 Ubuntu 14.04 上的 C++ testapp中,我想暂时重命名/sbin/reboot以防止我的被测系统(在 testapp 中启动的另一个大型 C++ 应用程序)调用 system("/sbin/reboot") 并在测试后我想恢复/sbin/reboot到它的全部荣耀。

所以在我调用的 cmd shell 上

为了使我的 testapp 能够进一步system("chown user /sbin/reboot")调用system("chgrp developer /sbin/reboot")system("mv /sbin/reboot /sbin/reboot.tmp")

但是 testapp 以 chown 停止:更改“/sbin/reboot”的所有权:不允许操作

那么,要在未运行 sudo 的应用程序中重命名此特定文件,必须做些什么?

0 投票
1 回答
3841 浏览

linux - 我可以在 Docker Nginx 容器中添加哪些功能?

我在 Docker 容器中运行 Nginx,出于安全原因,我想放弃尽可能多的 Linux 功能。

然后我可以放弃哪些能力?

该图像类似于此处的标准 Docker Nginx Alpine 图像:https ://github.com/nginxinc/docker-nginx/blob/0c7611139f2ce7c​​5a6b1febbfd5b436c8c7d2d53/mainline/alpine/Dockerfile ,它以 root 身份启动 Nginx,然后以 root 身份运行工作进程用户'nginx',看:

监听端口 80 和 443,+ 使用 Docker-Compose 的 'volume: ....' 指令挂载一些目录。

显然,这些是 Docker 默认授予容器的功能:

从这里:https ://github.com/docker/docker/blob/master/oci/defaults_linux.go#L62-L77

我在这里找到了链接: https://docs.docker.com/engine/security/security/#linux-kernel-capabilities,并且该页面说:“默认情况下,Docker会删除除所需功能之外的所有功能”,这可能意味着那一个不需要放弃任何能力?...

...但是,有这篇 Red Hat 博客文章关于丢弃这些功能的丢失 - 所以似乎(某些)默认功能是不需要的。不知道该相信什么,我想知道人们是否知道可以(应该)放弃哪些功能。

(我也许可以测试自己,但即使我测试放弃了一项能力并且事情似乎在几个小时或几天内都可以正常工作 - 我可能仍然放弃了错误的能力?问题可能会出现,甚至更晚?所以似乎对双方都更安全在这里问和测试我自己,而不是测试我自己)

(我很惊讶这还没有在其他地方得到回答?不是很多人在 docker 中使用 Nginx,因此想要放弃功能吗?)

0 投票
2 回答
2985 浏览

linux - 在 Yocto 构建期间使用 Linux setcap 命令设置功能

我正在使用 Yocto 1.8 构建一个 linux 系统。

我需要在构建过程中使用命令“ setcap ”来设置文件功能,这是通过 libcap 包配方介绍的: http: //cgit.openembedded.org/openembedded-core/tree/meta/recipes-support/libcap/libcap_2。 25.bb?h=master

问题是配方提供了libcap包,它只是库,以及另一个名为libcap-bin的子包,其中包含我需要使用的二进制文件。但是我无法在我的配方中构建或使用libcap-bin-native包作为依赖项(使用DEPENDS变量)。所以每次我调用“ setcap ”二进制文件时,Yocto 都使用主机二进制文件(Ubuntu 14.04 64 位)而不是构建系统的二进制文件(因为它不存在)。

我需要知道如何在我的本机 sysroot 构建系统中包含从 libcap-bin 包构建的本机二进制文件,以便在配方执行期间使用。

使用 setcap 命令的示例配方:

这个配方工作正常,除了它使用位于“ /sbin/setcap ”的主机系统(Ubuntu 14.04 64 位)中的setcap命令

依赖包 libcap-native 仅包含我本机 sysroot 中的库文件,但不包含二进制文件。

如果我在我的食谱中使用这个:

我收到了这个错误:

我还看到这个线程在谈论相同的主题: Linux capabilities with yocto

但是他使用 Yocto > 2.3 而我使用的是 Yocto 1.8 ,我现在无法更新它。

有什么帮助吗?

PS:我已经更新了我的 yocto 构建系统,以在 IPK 创建期间保留 ACL 和扩展属性,并且它在 IPK 内、rootfs 内以及闪烁后在目标上工作并被保留。

0 投票
2 回答
1715 浏览

c - 在 C 中测试 linux CAP_FOWNER 功能?

在调用chmod()目录之前,如果调用者不拥有该目录,我想测试调用者是否有CAP_FOWNER能力。

从搜索来看,我似乎应该能够CAP_FOWNER通过调用来测试该功能capable(CAP_FOWNER)——但capable()不在我的手册页中,而且似乎也不是由<linux/capability.h>.

什么是正确的包含文件capable(),或者,什么是测试 linux 功能的最简单/最好的方法?

0 投票
2 回答
545 浏览

c - 仅在可继承集中具有能力意味着什么?

我的程序正在运行cap_sys_admin,cap_setgid+i
当然,我知道它们可以跨 execve 继承,但除此之外:它们的行为方式是否与我根本没有它们一样,因为它们既不有效也不被允许?

0 投票
2 回答
2252 浏览

linux - 使用 CAP_SYS_ADMIN 和 CAP_IPC_LOCK 功能从 bash 脚本启动 perf

我想利用性能来运行一些带有 perf 的测试,而无需运行命令,root也无需调整/proc/sys/kernel/perf_event_paranoid. perf 的一些错误消息说:

所以我尝试通过以下方式创建一些具有相同源但不同功能集的 bash 脚本:

每个脚本都有相同的来源,如下所示:

但是我运行的每个脚本都会给我一个结果,就好像我是一个普通用户一样(这意味着我不能计算内核事件或其他特权的东西)。就像我调用脚本时丢弃了功能一样。性能版本是4.11.ga351e9.

这种方法有什么问题?

0 投票
2 回答
4387 浏览

linux - getcap/setcap 在 Docker 容器中无法使用 Debian Stretch 主机

我有一个 Debian Stretch 主机:

它正在运行 Docker:

当我尝试运行容器并使用getcap/setcap时,它会因不支持而失败:

一个strace表明问题是getxattr返回EOPNOTSUPP

互联网上有很多关于这个问题的参考资料,但他们都建议我需要一个 4.0+ 内核,我有。关于如何调试的建议将不胜感激。

和奖金调试信息:

的输出modinfo aufs

0 投票
1 回答
138 浏览

linux - 在容器内删除权限

我的一张图片需要安装设备。因此,启动时需要 cap_sys_admin。但是,一旦不再需要此功能,我想放弃它。

有没有办法在后期放弃这个能力?

0 投票
1 回答
37 浏览

kubernetes - 节点能力存储在 Kubernetes 中的位置

我与 Kubernetes 资源管理相关的问题:

  1. Kubernetes master 如何收集他所有的节点资源能力,然后根据需求和资源可用性使用这些能力来调度 Pod?

  2. 从节点检索的功能在主节点中维护的位置?(任何数据库或 go 结构来维护数据?)。

请建议文件里面的所有这些操作都执行。我找到了文件位置https://github.com/kubernetes/kubernetes/blob/master/plugin/pkg/scheduler/schedulercache/node_info.go,但没有找到任何执行此操作的代码。

  1. 调度器如何使用主节点管理的资源信息来调度 Pod?