AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Запуск скрипта по прибытию СМС (права и все такое)

Newbies/FAQ Forum 11 сообщений -
#1

Запуск скрипта по прибытию СМС (права и все такое)


Попрошу помощи...

На модем приходит СМС, исполняется кусок диалплана:
exten => sms,n,System(php /root/ss.php)

Сообщение об ошибке: не могу открыть ss.php. (Ставил все возможные ЧМОДы на ss.php, включая 777).

Скрипт (то ли даже сам php) похоже, запускается от пользователя asterisk.
Как-то года 2 назад решил эту задачу БЕЗ sudo. Напрочь забыл что и кому разрешил... Sad Но смысл по-моему был в том, что как-то умудрился разрешить астериску запустить программу (тогда была ssh) от рута.

Не подскажете, как разрешить астеру (а именно System()) все-таки запустить PHP?
#2

А на саму папку root какие разрешения?
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#3

RWX --- ---

то есть 700 при хозяине root

Ладно, намек понял - поместить в такую папку, где рекурсивно (начиная от всех родительских папок) позволено исполнять файл.

Но как быть, если нужно запустить /usr/bin/ssh? Там права у всех папок RWX R-X R-X, хозяин root.
А запустить нужно именно от asterisk, чтобы System() сработал я так понимаю...


Последний раз редактировалось: jumbo (Вт Янв 08, 2013 16:24)
#4

Для начала я всегда проверяю на работоспособность самого скрипта. Потом - уж остаются только права. Ну и не проще в скрипте поставить первой строку типа #! ... вызов среды исполнения и далее дать ему права на запуск и запускать типа System(/root/ss.php)

И попробуйте сменить на 755

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#5

Верно, но скрипт проще некуда:



Это нужно чтобы понять, от кого выполняется скрипт.

А вообщемне нужно кровь из носу запустить ssh из System(). НИКАК НЕ ХОЧЕТ. Совершенно уверен, что менял что-то с правами раньше.
System() запускает от asterisk-а, а нужно от root. То есть, либо разрешаем запускаться SSH от asterisk (что, в принципе и так разрешено, судя по правам на ssh), ЛИБО как-то запускаем от root... Или не так??
#6

/etc/sudoers - допиши что надо
Я надеюсь selinux у вас выключен ?
#7

1 SELinux-a нет

2 А так хотелось без sudo..... Confused

Added after 1 hours 11 minutes:


ИТАК, извращаемся Twisted Evil

System(whoami) совершенно точно показывает, что все из диалплана запускается от asterisk.

Посему копируем /usr/bin/ssh в папку с разрешениями от asterisk. Например, /var/log/asterisk.
Устанавливаем файлу хозяина asterisk и права 755;

ВСЕ, System(/var/log/asterisk/ssh ... запускается!

Если нужно (а вообще-то нужно) подключаться по ssh к другому хосту БЕЗ ЗАПРОСА ПАРОЛЯ, генерим ssh-keygen ОПЯТЬ ТАКИ ОТ ИМЕНИ asterisk:
sudo -u sterisk ssh-keygen -t rsa
Затем копипастим сгенеренный ключ pub в authorized keys на хосте, куда подключаемся.

Вуаля.
#8

Ахренеть , толкнула меня на мысль что примерно таким образом можно и бэкдор написать ))
#9

А Дистрибутив какой? Если Ubuntu, то возможно вам мешает AppArmor.

Последний раз редактировалось: esavin (Ср Янв 09, 2013 13:08)
#10

apparmor - это что?