gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 12:31:34 30 4
gpt4 key购买 nike

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

所以在我调用的 cmd shell 上

sudo setcap cap_chown,cap_dac_override,cap_setfcap=+ep testapp

为了使我的测试应用能够调用 system("chown user/sbin/reboot") 此外 system("chgrp developer/sbin/reboot")system("mv/sbin/reboot/sbin/reboot.tmp")

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

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

最佳答案

对于 www 中的所有 linux 功能专家:问题是 - “我的应用程序需要重命名/sbin/reboot 中的哪些 linux 功能而不使用 sudo - 以获得与调用 sudo mv 相同的效果/sbin/reboot/sbin/reboot.tmp 在 shell 中

@datenwolf:没有不礼貌,但如果我问人群“现在几点了”?这样的回答“你问错了问题,因为我没有看,但我有一个湿度计,所以如果你问湿度,我很乐意帮助你”对我一点帮助都没有。

重命名 root 拥有的文件的解决方案是,仅设置

sudo setcap cap_dac_override=+ep MyTestApp

在命令行上,而不是使用

system("mv file1 file2");

在 MyTestApp 源代码中,切换回

rename("file1" "file2");

然后一切都像魅力一样工作。

关于c++ - 重命名 root 拥有的文件的 linux 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43142399/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com