如何正确删除功能
How to properly drop capabilities?
在C++程序中,我需要以下功能:
dac_override设置用户标识符setgidchroot
我不需要任何其他的,我想立即在程序中删除它们,然后稍后再删除其他的。
做这件事的正确方法是什么?
为清晰起见进行编辑:
所以,我有root,它实际上只是一堆功能。我的程序几乎不需要这些上限中的任何一个,所以我想去掉我提到的四个之外的所有上限。我相信这样做的方法是使用
prctl(PR_CAPBSET_DROP,CAP_SYS_CHROOT, 0, 0, 0);
但当我做时
if(prctl(PR_CAPBSET_READ,CAP_SYS_CHROOT, 0, 0, 0) == 1)
err(0, "CAP_SYS_CHROOT drop fail");
我犯了个错误。我仍然可以记录。
我已经弄明白了。这里最好的方法是使用libcap ng。
以下代码适用于我。
capng_clear(CAPNG_SELECT_BOTH);
capng_updatev(CAPNG_ADD, (capng_type_t)(CAPNG_EFFECTIVE | CAPNG_PERMITTED), CAP_SETUID, CAP_SETGID, -1);
capng_apply(CAPNG_SELECT_BOTH);
相关文章:
- 在Qt5中使用QTextSteam时的"使用已删除功能"
- 链表删除功能的单指针 // 是可能的
- 删除功能不适用于串行通信后多个循环中的多个实例
- 为什么每当我尝试运行此链接列表删除功能时都会收到分段错误错误?
- 使用删除功能?
- Sinlge 链表,C++,删除所有和搜索功能的问题
- 如何实现删除数组的功能?
- 使用已删除的功能unique_ptr
- C++使用已删除的功能与unique_ptr,make_unique
- 错误:当我尝试使用引用时,使用已删除的功能
- 二叉搜索树 - 使用 Linux 在虚拟机中制作删除功能
- 为什么我的删除功能总是出现分段错误
- C++链表删除和删除返回功能
- 与 c++ 中的删除功能混淆
- 启用 C++17 中已删除的功能
- C++:提升 ptree 删除子项:无匹配功能
- 用户使用C++中的删除功能删除文件
- =删除用户定义的成员功能,除了构造函数,分配运算符C 11
- 为什么我的打印功能之一删除节点
- 功能删除在我第二次激活它时不起作用