A organização para a qual trabalho é muito voltada para a segurança. Existe uma separação entre o grupo de Administradores do Sistema que são responsáveis pelos sistemas operacionais (que, obviamente, possuem root) e aqueles de nós que mantêm os serviços que rodam nesses sistemas operacionais (dos quais eu seria um, e nós somos não ter acesso ao root, exceto restrito via sudo).
Atualmente, estou no processo de reprojetar como mantemos nossa configuração do Apache. A nova configuração será executada no RHEL, onde o antigo foi executado no Solaris.
De alguma forma, no Solaris, quando o log de canalização foi usado, os scripts para os quais o log foi canalizado são executados como o mesmo usuário do Apache, que é o webservd. No RHEL, no entanto, eles acabam sendo executados como root, onde eu preferiria que eles fossem executados como a conta do serviço apache (ou seja, o apache, a mesma conta em que os serviços Apahce são gerados).
Soluções que envolvem o uso de sudo na chamada de pipe não são suficientes; antes que eu tenha permissão para mover este QA passado, precisarei criar uma maneira de fazer com que você não possa fazer com que algo seja executado como root colocando-o no Apache arquivos de configuração. Eu suspeito que a solução envolve a concessão ao usuário do apache de alguns privilégios especiais (de modo que ele possa ligar às portas 80/443) e então usar isso em vez de root para iniciar o serviço.
Qualquer ajuda seria muito apreciada.
Adendo: Foi feito um pedido para mostrar como o log canalizado é chamado.
Esta é a linha relevante do arquivo de configuração:
CustomLog "||/httpd/scripts/syslog.py" qradar
O que acaba acontecendo é que o script em /httpd/scripts/syslog.py acaba sendo executado como root. Precisamos fazer isso não só não acontecer, mas também não é possível fazer.