对于某些组件测试,在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的应用程序中重命名此特定文件,必须采取哪些措施?
答案 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");
然后一切都像魅力一样。