|
|
|
| Понадобилось выполнить пару команд от имени root'a в консоли Debian при помощи PHP. Сделал так:
<?php
$res = shell_exec("su root");
if (!preg_match('#no passwd entry#is', $res)){
$res = shell_exec('**************');
...
?>
| Никакого вывода в переменной $res нет. Логин и пароль правильные, а пользователь все равно прежний. Как залогиниться? Может быть PHP каждый раз при выполнении shell_exec() запускает новую сессию в консоли? | |
|
|
|
|
|
|
|
для: Commander
(21.04.2014 в 21:22)
| | А не проще PHP-скрипт от root-а запустить? | |
|
|
|
|
|
|
|
для: cheops
(21.04.2014 в 23:20)
| | А как? Он запускается через браузер. | |
|
|
|
|
|
|
|
для: Commander
(21.04.2014 в 23:47)
| | Тогда нужно разделить код на два файла. В одном будут инструкции, которые нужно выполнять от рута, а другой будет его вызывать через shell_exec. На файле должен стоять флаг SUID и execute (и shabang в начале, куда же без него). Владелец должен быть root. | |
|
|
|