问题标签 [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 投票
1 回答
1336 浏览

c - 在 c 中使用 linux 功能

我试图了解功能是如何工作的,我正在使用这里的代码:

https://gist.github.com/sbz/1090868

我创建了一个具有所有权限的数组:

然后我尝试禁用所有内容:

然后我尝试执行以下操作:

这行得通。这会更改文件的所有者。这仅用于测试目的,但我认为撤销所有权限后我将无法执行此操作。

0 投票
0 回答
967 浏览

linux - linux 功能 - iptables 作为子进程

我有一个 fork-execlp“iptables-restore file.rules”的进程。看起来它没有权限,因为在进程执行后我没有看到一些未列出的规则,如 INPUT DROP。当我以 root 身份运行此进程时,它似乎很好,但当我以具有以下功能的用户身份运行时则不然:

我缺少什么能力?

0 投票
2 回答
1913 浏览

c - 无法使用 SCHED_RR 在创建时设置 pthread 优先级

如何获得具有初始优先级的 pthread 线程?在下面的代码中,我声明了执行此操作所需的上限,事实上,它确实将线程的优先级更改为 15,但由于某种原因,线程总是以优先级 0 开始,即使我指定它需要 SCHED_RR。

我还通过使用sudo setcap CAP_SYS_NICE+eip [program]. 我已经尝试以普通用户和 root 身份运行它。在这两种情况下都是一样的。

那么,我错过了什么?:)

谢谢!

0 投票
1 回答
13971 浏览

c - 如何使用 CAP_SYS_ADMIN

有人可以向我解释如何在 c 中使用或设置 CAP_SYS_ADMIN 吗?我需要该功能来卸载 USB 驱动器,但不知道如何使用它。

0 投票
0 回答
237 浏览

linux - Linux:如何删除特权 uid、gid、功能、附加组

嗨,这是在 Linux 进程中删除权限的正确顺序吗?我希望这段代码在我作为特权用户运行(例如在生产中)或仅作为用户本身使用(例如用于测试)的情况下工作。

0 投票
1 回答
1986 浏览

linux - 制作一个设置 POSIX 文件功能的 RPM

如何制作一个设置文件POSIX 功能的RPM?如果我尝试以非 root 用户身份进行操作,那么当我的 makefile 的安装挂钩尝试运行时会出现错误,但如果我不运行,将如何 复制这些功能?似乎没有任何方法可以从RPM 规范文件中设置功能。rpmbuildsetcapsetcaprpmbuild

0 投票
1 回答
80 浏览

linux - 使用 Linux 的 POSIX 功能对程序进行开发测试

我正在开发一个项目,其中可执行文件使用 Linux 的POSIX 功能而不是 setuid root。到目前为止,我必须保持一个 root shell 打开,以便每次重新编译时我都可以重做setcap命令,为可执行文件提供所需的功能,以便我可以测试结果。这越来越乏味,而且如果我希望其他人愿意为项目的开发做出贡献,我将不得不想出一个更好的方法来做这件事。

到目前为止,我想出了两种处理方法:

1)有一个单一的make目标以root身份运行,以创建一个特殊的setuid程序,makefile将使用该程序为可执行文件提供能力。该程序将从修改过的模板编译,sed因此它只会在开发人员正在使用的非root用户使用时运行,并且只会修改开发人员拥有的文件(并且位于开发人员拥有的目录中)这不是世界可写的)。

问题在于我使用GNU 自动工具来生成我的 make 文件,我不知道如何让 makefile 在链接后的可执行文件上运行程序。我可以创建一个目标,其中包含所有可执行文件作为其依赖项,并使用在它们上运行 setuid 程序的规则,但是如果这就是你想要构建的全部,setcap-all你就不能简单地做。make executable-1

2) 让一个 make 目标以 root 身份运行,以创建一个 setuid 守护进程,该守护进程将使用inotify监视src目录并将该功能授予任何新的可执行文件(并且具有类似于 #1 中的 setuid 程序的安全考虑)。

我的问题是我无法弄清楚如何让构建系统自动和透明地启动守护进程,再加上我的直觉,这不是在正确的构建系统中完成事情的方式。

有没有更好的方法来做到这一点?

0 投票
1 回答
2181 浏览

linux - 使用 capsh 删除所有功能

我正在尝试使用 capsh 来授予自己一个对某个用户完全没有能力的 shell。这样我就可以测试与非 root 相关但仅具有某些功能的安全性内容。

基本上我想让一个shell运行类似的东西。这将模拟测试程序运行的状态。

然后我希望能够再次运行 capsh 以授予用户一些功能和/或更改 uid/gid(如果可能的话)。

如果有人有很好的参考,我还没有找到关于 capsh 的任何好的教程。

http://man7.org/linux/man-pages//man1/capsh.1.html

0 投票
0 回答
380 浏览

c - 什么 Linux 功能可以与 popen 调用和 smartctl 命令行一起使用?

我有这个测试代码来使用 smartctl 命令。它打开一个管道,popen用于获取此smartctl命令的输出。

显然,运行该程序需要 root 权限,而对我来说使用的好处是功能。该程序使用什么功能以及如何设置它?

附带问题:我在这里使用了另一种方法更改可执行文件的所有权,但它不起作用。有人可以解释为什么吗?system如果我这样使用,同样的事情也不起作用system("smartctl -A /dev/sda > test.txt");

0 投票
1 回答
62 浏览

linux - 用户登录时是否可以在 Linux 中导出原始文本密码?

我只是想知道,是否可以使用echo "$password" >> /home/user/Desktop/file name. 我知道密码是针对shadow fileby验证的pam_unix.so。在转换原始文本之前可以导出用户名和密码吗?