У меня есть настройка .procmailrc, которая передает письма в скрипт. Суть моей проблемы заключается в том, что электронная почта принимается как пользовательская «магия», а сценарий, который мне нужен для обработки электронной почты, должен запускаться как www-data.

Почта принимается как пользователь 'magic', и .procmailrc передает ее по адресу:

/home/magic/email_reader_passthru

В этом файле у меня есть следующая команда:

sudo -u www-data -s "cd /var/www/live/app && Console/cake emailReader"

Я также дал «магии» возможность использовать sudo как «www-data» в /etc /sudoers

magic   ALL = (www-data) NOPASSWD:ALL

Тем не менее, я всегда получаю сообщение об ошибке:

/bin/bash: cd /var/www/live/app && Console/cake emailReader: No such file or directory

В тестировании, если я вошел в ssh как пользовательское волшебство, и я пытаюсь выполнить:

sudo -u www-data -s 'cd /var/www/live/app'

У меня та же проблема, и я не уверен почему. Кажется, я не могу выполнить CD изнутри команды sudo -s?

1 ответ1

0

Мне кажется, что поведение -s плохо определено в разных распределениях sudo. Вероятно, вам следует указать определенную оболочку, например, sh таким образом:

sudo -u www-data sh -c "cd /var/www/live/app && Console/cake emailReader"

Объяснение: эта команда выше вызывает sudo, который вызывает оболочку sh , которая анализирует следующие команды: cd /var/www/live/app && Console/cake emailReader

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .