Я пытаюсь выполнить 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()
дает разные результаты?