0

我正在尝试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;

而 usingexec()会生成a2a.te包含多行的文件:

module a2a 1.0;

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

为什么运行相同的命令Symfony\Component\Process\Processexec()给出不同的结果?

4

0 回答 0