The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"sudo, php, ejabberd и прочая мистика"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Др. сетевые сервисы / Linux)
Изначальное сообщение [ Отслеживать ]

"sudo, php, ejabberd и прочая мистика"  +/
Сообщение от stakado email(ok) on 28-Сен-11, 16:17 
Драсьте!
Пытаюсь взаимодействовать с ejabberd: с помощью php выполняю bash-скрипт, в котором учавствует sudo.
Есть скрипт jab.sh:
#!/bin/bash
echo "id by bash: `id`"
echo "id by sudo: `sudo id`"
sudo /opt/ejabberd-2.1.8/bin/ejabberdctl status

Есть так же php-скрипт jab.php:
<?php
$output = shell_exec('id');
echo "<pre>id by php:  $output</pre>";
$output = shell_exec('./jab.sh');
echo "<pre>$output</pre>";
?>

При выполнение из консоли:
[root@zeus httpd]# sudo -u apache -g apache ./jab.sh
id by bash: uid=77(apache) gid=77(apache) groups=77(apache)
id by sudo: uid=0(root) gid=0(root) groups=0(root),512(Domain Admins)
The node ejabberd@localhost is started with status: started
ejabberd 2.1.7 is running in that node

[root@zeus httpd]# sudo -u apache -g apache php ./jab.php
<pre>id by php:  uid=77(apache) gid=77(apache) groups=77(apache)
</pre><pre>id by bash: uid=77(apache) gid=77(apache) groups=77(apache)
id by sudo: uid=0(root) gid=0(root) groups=0(root),512(Domain Admins)
The node ejabberd@localhost is started with status: started
ejabberd 2.1.7 is running in that node
</pre>[root@zeus httpd]#

А когда открываю в браузере jab.php вижу следующее:
id by php:  uid=77(apache) gid=77(apache) groups=77(apache)

id by bash: uid=77(apache) gid=77(apache) groups=77(apache)
id by sudo: uid=0(root) gid=0(root) groups=0(root),512(Domain Admins)
Failed RPC connection to the node ejabberd@localhost: nodedown

Commands to start an ejabberd node:
  start  Start an ejabberd node in server mode
  debug  Attach an interactive Erlang shell to a running ejabberd node
  live   Start an ejabberd node in live (interactive) mode

Почему из консоли скрипты выполняются нормально, а когда они вызываются httpd нет?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "sudo, php, ejabberd и прочая мистика"  +/
Сообщение от stakado email(ok) on 28-Сен-11, 16:24 
Забыл показать /etc/sudoers:
root    ALL=(ALL:ALL) ALL
apache        ALL = (ALL:ALL) NOPASSWD: ALL
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "sudo, php, ejabberd и прочая мистика"  +/
Сообщение от stakado email(ok) on 28-Сен-11, 17:08 
Проблема решена:
Замысловатым способ смог увидеть поток ошибок из php (сам по себе он их не показывает, и не сам по себе тоже, пришлось поизвращаца).
В общем ошибка была такая:
erlexec: HOME must be set

Решил заменой sudo в скрипте на sudo -H

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру