Предоставить Cydia приложению root-доступ - PullRequest
0 голосов
/ 10 марта 2012


Я делаю приложение Cydia, у которого есть разрешение на установку файлов.Мне нужно иметь возможность получить root-доступ к / Applications для этого.Я посмотрел здесь , но это было немного неясно.Кто-нибудь может объяснить это немного лучше?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 04 мая 2012

Никогда не используйте систему с setuid! Если, например, злоумышленник изменит PATH на /tmp:$PATH, и этот человек добавит свою собственную программу в / tmp и назовет ее «ls», то даже выполнение этого простого кода даст им root-доступ ваше устройство:

setuid(0); system("ls");

Вместо этого вы должны использовать семейство функций exec, но не execvp / execlp.

1 голос
/ 26 апреля 2012

вы можете использовать это

setuid( 0 ); 
system( "/path/to/script.sh" );

, где путь к скрипту - это скрипт в вашем приложении, который будет устанавливать файлы

или

setuid( 0 ); 
system( "cmd" );

, где cmd - этотакую ​​команду, как

setuid( 0 ); system( "echo Hello World" );

Вы также можете войти таким образом в каталог /tmp или любое другое место.

setuid( 0 ); system( "echo Hello World >> /tmp/install.log" );

setuid (0); дает ему root-доступ, а system (cmd); - этоФактическая команда

Будьте внимательны при использовании этого, так как root имеет доступ ко всем.

...