Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Для профи > скрипт отправляющий команду reboot


Автор: Step 3.7.2005, 01:53
попробывал
system("reboot")
не вышло


подскажите как это можно сделать
Добавлено @ 01:59
о интересно а что такое sudo

system("sudo reboot")
вот так работает

Автор: 1DRE 3.7.2005, 08:42
Цитата
о интересно а что такое sudo


sudo - это программа, которая запускает программу с правами другого пользователя, если пользователь явно не указан, то им по- умолчанию является root.

Цитата
system("sudo reboot")
вот так работает


Что то я непойму как так может работать%)
Вы должны передать пароль рута чтоб команда выполнилась. Иначе завершение будет просто "инкорект пассворд".
Что бы не передавать, можно немного подредактировать один системный файл.
Добавляешь в /etc/sudoers такую строку.
%wheel ALL=(ALL) NOPASSWD: ALL
теперь абсолютно все команды можно будет исполнять без пароля.
Но перед этим добавь нужных пользователей, которые будут работать с этой командой в группу wheel.

Цитата
попробывал
system("reboot")
не вышло


а так и не должно работать, если у тебя не права root то так работать и не будет.
Можно было бы поставить SUID на этот скрипт, но на скрипты ставить SUID нельзя! Как жаль)
Есть вариант найти какой то компилятор который сможет скомпилировать програму, а потом поставить SUID, тогда будет работать от любого пользователя.
Есть ещё вариант, это embedding. Особо этой темой не интересовался на php. Но думаю что это вполне реально.
Немного посмотрел в гугле, посмотри ещё, может найдеш что-то.
http://www.phpfreaks.com/forums/index.php?showtopic=10553
Если так получится, просто с gcc компилим код на C, ставим SUID и всё программы будет работать.

Но а если нужно скриптом, то просто эксперементируйте, должно получится.

Автор: Step 3.7.2005, 12:07
1DRE, ага наверноее судо переобределено или где чето прописано

спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)