c - 如何使用 CAP_SYS_BOOT 能力?

标签 c linux

我必须开发 C API 来通过 UI APPLICATION 使用重启功能而不是系统调用和 exec 功能来关闭 linux 系统。 This reboot link说为了运行这个函数调用者必须有 CAP_SYS_BOOT在其用户命名空间内。 目前此功能仅适用于 root 用户,我必须修改它以使其也适用于普通用户。如何使用功能在 C 函数中设置足够的权限以便任何用户关闭 linux 系统?

turnoff() 
{
  sync();
  reboot(RB_POWER_OFF);
}

最佳答案

您的流程必须具备这种能力;您不能在运行时将它授予自己(这会破坏功能的全部目的)。

了解 capabilities(7) .

使用setcap设置可执行文件的功能。这通常在安装时完成。作为根:

setcap cap_sys_boot+ep /path/to/your/executable

能力也可以被子进程继承。

关于c - 如何使用 CAP_SYS_BOOT 能力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53550247/

相关文章:

c - 如何在多线程 TCP 服务器中获取每个连接的客户端地址

在c中将字符组转换为字符串

c - 在 C Web 服务器上接受 ipv6 请求时遇到问题

c - char、double 和 float 的正确说明符是什么?

c - 为什么我的第一个三角形的第三个顶点始终位于原点,而其余的三角形没有被绘制?

linux - Ubuntu中vscode中的实时服务器未在Android手机中加载

linux - MongoDB转储和还原

python - 解析输入 argv json 字符串

linux - 如果您终止包含单个 nohup 命令的 bash 脚本,会发生什么情况?

linux - 如何记录 ssh 客户端连接/命令?