Jump to content
Калькуляторы

Gammu-smsd. Запуск скрипта от рута

Хочу иметь возможность через пару команд посланных смс-ками выполнить несколько действий на сервере. В сервак воткнул флешку с симкой. Поставил и настроил gammu-smsd. В его конфиге есть параметр:

RunOnReceive = /usr/local/bin/incom_sms.sh

В качестве параметров в скрипт передаются ID входящих СМС. Загвоздка в том, что gammu-smsd работает под своим пользователем, а мне нужно скриптики запустить от рута. Ну ок, вроде все просто - добавляем в скрипт:

cat ./incom_sms.sh
#!/bin/bash

for ID in "$@" ; do
   echo $ID >> /usr/local/bin/test_sms_gammu.log
   `/usr/bin/sudo /usr/local/bin/incom_sms_php.sh "$ID"`
done
exit

И

cat ./incom_sms_php.sh
#!/bin/bash
if [[ `id -u` -ne 0 ]] ; then echo "Please run as root" ; exit 1 ; fi
echo "$1" >> /usr/local/bin/test_sms_root.log

И добавил строку в sudoers

gammu   ALL=(ALL) NOPASSWD:/usr/local/bin/incom_sms_php.sh

Проверяем из консоли:

[root@*** ~]$ su - gammu

su: warning: cannot change directory to /var/spool/sms: No such file or directory

-bash-4.1$ /usr/local/bin/incom_sms.sh 001

-bash-4.1$

[root@*** bin]$ cat ./test_sms_gammu.log

 

001

[root@*** bin]$ cat ./test_sms_root.log

 

001

 

Все правильно.

Проверяю отправкой СМС и вижу:

[root@*** bin]$ cat ./test_sms_gammu.log

 

001

447

[root@*** bin]$ cat ./test_sms_root.log

 

001

 

Не срабатывает выполнение второго скрипта от рута. Вроде простенькая задачка, а уже 3 часа бьюсь и не могу решить.

 

Подскажите, куда копать..

p.s. на момент тестов selinux отключил.

Share this post


Link to post
Share on other sites

И добавил строку в sudoers

gammu   ALL=(ALL) NOPASSWD:/usr/local/bin/incom_sms_php.sh

 

Звездочку в конце забыли...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now