Symfony \ Component \ Process \ Process не удалось запустить audit2allow - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь выполнить audit2allow, используя Symfony\Component\Process\Process.

Когда я запускаю exec("audit2allow -a -M a2a"); в PHP, все работает нормально, a2a.pp и a2a.te.

    $process = new Process(['audit2allow', '-a', '-M', 'a2a']);
    $process->run();
    if (!$process->isSuccessful()) {
        throw new ProcessFailedException($process);
    }
    echo $process->getOutput();

Тем не менее, приведенный выше код производит вывод ниже

Symfony\Component\Process\Exception\ProcessFailedException  : The command "'audit2allow' '-a' '-M' 'a2a'" failed.

Exit Code: 1(General error)

Working directory: /var/www/html/example

Output:
================
compilation failed:
a2a.te:6:ERROR 'syntax error' at token '' on line 6:


/usr/bin/checkmodule:  error(s) encountered while parsing configuration
/usr/bin/checkmodule:  loading policy configuration from a2a.te

, который является типичным выводом при пустом /var/log/audit/audit.log. Что мне нужно изменить, чтобы заставить его работать должным образом? Symfony утверждает, что это не ошибка. https://github.com/symfony/symfony/issues/35862

Обновление

Использование Symfony\Component\Process\Process (код выше) на самом деле создает файл a2a.te, но он содержит только 1 строку.

module a2a 1.0;

Принимая во внимание, что exec() создает файл a2a.te с несколькими строками:

module a2a 1.0;

require {
        type kernel_t;     
        type vmblock_t;    
        type container_t;  
...

Почему выполнение одной и той же команды на Symfony\Component\Process\Process и exec() дает разные результаты?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...