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

时间:2017-03-31 13:50:10

标签: c++ linux linux-capabilities

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

所以在cmd shell上我调用了

sudo setcap cap_chown,cap_dac_override,cap_setfcap=+ep testapp

为了让我的testapp再次致电system("chown user /sbin/reboot") system("chgrp developer /sbin/reboot")system("mv /sbin/reboot /sbin/reboot.tmp")

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

那么,要在不运行sudo的应用程序中重命名此特定文件,必须采取哪些措施?

1 个答案:

答案 0 :(得分:0)

对于www中的所有Linux功能专家:问题是 - " 我的应用程序需要使用sudo重命名/ sbin / reboot中的哪些Linux功能 - 以获得与调用{{ 1}}在一个shell中

@datenwolf:没有不礼貌,但如果我向人群询问"时间是什么"?"你这样的回答问了一个错误的问题,因为我没有手表,但我有一个湿度计,所以如果你问湿度,我很乐意帮助你,根本不帮助我。

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

sudo mv /sbin/reboot /sbin/reboot.tmp

在命令行上,而不是使用

sudo setcap cap_dac_override=+ep MyTestApp

在MyTestApp源代码中,切换回

system("mv file1 file2");

然后一切都像魅力一样。