Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: как запустить php скрипт с помощью ajax
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
приветы усем!
суть такова. нужно просто запустить скрипт на исполнение из клиентского окна, но никаких данных получать не нужно. использовать $.get $.post можно, но ведь я же ничего не посылаю. вот собственно и вопрос как правильнее это сделать или упомянутые методы единственный вариант?
----- Just do it
EuGen
Отправлено: 09 Декабря, 2011 - 11:27:16
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Запускайте скрипт, который, в свою очередь, будет выполнять нужный Вам скрипт (через http://php.su/functions/?system , не забудьте подавить весь вывод). Например,
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Panoptik
Отправлено: 09 Декабря, 2011 - 11:31:26
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
спасибо
посмотрел на ваш код и вспомнил недавнюю историю. мне нужно было проходить по дереву файловой системы и производить нужные операции, для этих целей нужны были права рута, пароль рута мне известен.
теперь вопрос: можно ли выше описанным методом system запустить php с правами рута?
----- Just do it
EuGen
Отправлено: 09 Декабря, 2011 - 11:44:50
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Пользователь, из-под которого выполняется ajax.php (то есть веб-сервер), должен быть в списке sudo (/etc/sudoers как правило)
но я бы не рекомендовал так делать.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Panoptik
Отправлено: 09 Декабря, 2011 - 11:48:34
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
/etc/sudoers - этот список насколько я понимаю дает право выполнять команды sudo без запроса пароля? (Добавление)
кстати на сервере стоит centOS или команда sudo одинакова для всех видов *nix'ов?
----- Just do it
Мелкий
Отправлено: 09 Декабря, 2011 - 11:51:25
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
EuGen пишет:
из-под которого выполняется ajax.php (то есть веб-сервер), должен быть в списке sudo (/etc/sudoers как правило)
Более того, должен быть прописан как NOPASSWD. Иначе - попросит отсутствующий пароль.
Присоединяюсь к рекомендации проверить, так ли необходимы рутовые права. (Добавление)
Panoptik пишет:
/etc/sudoers - этот список насколько я понимаю дает право выполнять команды sudo без запроса пароля?
Нет, он просто даёт право на вызов sudo.
И описывает, кому и что, и от чьего имени можно вызывать.
----- PostgreSQL DBA
EuGen
Отправлено: 09 Декабря, 2011 - 11:56:58
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Мелкий
Это разумеется. Здесь тонкость в том, что это может быть не обязательно пользователь, но и группа, разрешенная для sudo без пароля.
Но веб-сервер, имеющий возможность работать под root без пароля - это брешь в безопасности.
sudo одинакова везде, по сути, это название консольной программы.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Panoptik
Отправлено: 09 Декабря, 2011 - 12:00:08
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
ну про безопасность - это понятно. необходимость рута заключается просто в возможности иметь доступ к определенной папке и всем вложениям, потому как во вложенных папках находятся файлы имеющие разных владельцев и получить доступ ко всем от обычного пользователя не представляется возможным, а изменять права на 666/777 - выход крайне неприятный
ко всему добавлю что необходимость вызвана еще тем, что безопасность и так была нарушена и выше перечисленные файлы были изменены порядком 3к штук. вот собственно откуда взялась данная задача. и запуск скрипта с директивой sudo являлся лишь разовой акцией
пысы: всем спасибо за советы и ответы
----- Just do it
EuGen
Отправлено: 09 Декабря, 2011 - 12:02:53
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Panoptik пишет:
а изменять права на 666/777
Это куда более безопасное решение, чем работа из-под root
Да и необязательно. Для просмотра достаточно прав на листинг каталога (право x - исполнение) и просмотра файлов (право r - чтение).
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Panoptik
Отправлено: 09 Декабря, 2011 - 12:06:49
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
нужно было еще и изменять, поэтому право w - объязательно
----- Just do it
filkeith
Отправлено: 09 Декабря, 2011 - 12:59:45
Гость
Покинул форум
Сообщений всего: 112
Дата рег-ции: Июль 2011
Помог: 2 раз(а)
А почему нельзя просот передать в php от js к примеру гетом просто x=1 а в php if(isset($_GET[x])){выполнить что то}
Panoptik
Отправлено: 09 Декабря, 2011 - 14:03:27
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
filkeith пишет:
А почему нельзя просот передать в php от js к примеру гетом просто x=1 а в php if(isset($_GET[x])){выполнить что то}
так можно было сделать и вконце концов было сделано)
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.