Возможности Linux для переименования файла, принадлежащего корню

Для некоторых тестирование компонентов, в моем C ++ TestApp на Ubuntu 14.04,
Я хотел бы переименовать / SBIN / перезагрузка временно запретить моей тестируемой системе (другое большое приложение c ++, запущенное внутри testapp) от вызова
system("/sbin/reboot")
и после теста хочу восстановить /sbin/reboot во всей своей красе.

Так на оболочке cmd я называю

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

Решение

Для всех экспертов по возможностям Linux в www: вопрос был — «Какие из возможностей linux нужно переименовать / sbin / reboot моему приложению sudo — чтобы получить тот же эффект, что и при вызове sudo mv /sbin/reboot /sbin/reboot.tmp в оболочке.

@datenwolf: Без вежливости, но если я попрошу толпу «Какое время»? ответ как «Вы задали неправильный вопрос, потому что у меня нет часов, но у меня есть измеритель влажности, поэтому, если вы спросите о влажности, я буду рад вам помочь» не помогает мне вообще.

Решение переименовать файл, принадлежащий корню, состоит в том, чтобы установить только

sudo setcap cap_dac_override=+ep MyTestApp

в командной строке и вместо использования

system("mv file1 file2");

в исходном коде MyTestApp переключитесь обратно на

rename("file1" "file2");

Тогда все работает как шарм.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]