Susanin Posted April 17, 2016 Хочу иметь возможность через пару команд посланных смс-ками выполнить несколько действий на сервере. В сервак воткнул флешку с симкой. Поставил и настроил 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 - gammusu: 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 отключил. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
tartila Posted April 17, 2016 И добавил строку в sudoers gammu ALL=(ALL) NOPASSWD:/usr/local/bin/incom_sms_php.sh Звездочку в конце забыли... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...