linux 重命名 root 拥有的文件的能力
linux capabilities to rename a root owned file
对于某些 组件测试,在我的 C++ testapp Ubuntu 14.04 上,
我想暂时重命名 /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 - 获得与在 shell.
中调用 sudo mv /sbin/reboot /sbin/reboot.tmp
相同的效果
@datenwolf:没有不礼貌,但如果我问人群 "What's the time"? 这样的回答 "you asked the wrong question, because I don't have a watch, but I have a humidity meter, so if you ask about humidity, I am glad to help you" 对我一点帮助都没有。
重命名 root 拥有的文件的解决方案是,只设置
sudo setcap cap_dac_override=+ep MyTestApp
在命令行上,而不是使用
system("mv file1 file2");
在 MyTestApp 源代码中,切换回
rename("file1" "file2");
那么一切都很顺利。
对于某些 组件测试,在我的 C++ testapp Ubuntu 14.04 上,
我想暂时重命名 /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 - 获得与在 shell.
中调用sudo mv /sbin/reboot /sbin/reboot.tmp
相同的效果
@datenwolf:没有不礼貌,但如果我问人群 "What's the time"? 这样的回答 "you asked the wrong question, because I don't have a watch, but I have a humidity meter, so if you ask about humidity, I am glad to help you" 对我一点帮助都没有。
重命名 root 拥有的文件的解决方案是,只设置
sudo setcap cap_dac_override=+ep MyTestApp
在命令行上,而不是使用
system("mv file1 file2");
在 MyTestApp 源代码中,切换回
rename("file1" "file2");
那么一切都很顺利。