Execute o comando postfix pipe com um usuário diferente de ninguém

2

Atualmente estou configurando o envio de e-mail para um script PHP em um diretório não acessível por outros (está definido para 750). O postfix executa o comando pipe sob o usuário 'nobody', que naturalmente não poderá acessar o script. Estou um pouco hesitante em adicionar permissões de execução a essa pasta, pois não quero que outros usuários possam acessá-la (mesmo que não saibam o caminho). Então, o que eu quero é que o comando pipe seja executado sob um usuário diferente, que tenha acesso a essa pasta.

O servidor que eu quero fazer isso tem o Virtualmin instalado. Eu configurei tudo com o Virtualmin, incluindo o alias que é alimentado no script PHP. Há vários tópicos no fórum Virtualmin sobre esse problema, mas não há outra solução além de tornar a pasta executável por outras pessoas.

Então, como posso deixar o comando pipe rodar sob um usuário diferente de ninguém?

    
por mpkossen 29.11.2012 / 13:36

3 respostas

3

Conforme documentado , pipe(8) pode ser executado como qualquer usuário que você disser para - exceto raiz.
Isso, e somente , que será executado como nobody .

yourscript unix - - n - - pipe user=<uid> argv=<yourexecutable>

O user= aceita qualquer usuário unix existente e executa a instância pipe (8) nessas credenciais.

    
por 29.11.2012 / 14:36
0

Isso ocorre porque o usuário no qual o Postfix é executado para a tubulação é, por padrão, ninguém.

Essa linha altera o usuário sob o qual a tubulação é executada e você deve estar ciente de que na documentação do Postfix ele avisa sobre isso: NÃO ESPECIFICAR UM USUÁRIO PRIVILEGIADO OU O PROPRIETÁRIO DO POSTFIX

Esteja ciente das implicações de segurança dos e-mails de tubulação por meio de um usuário privilegiado no servidor.

    
por 03.10.2014 / 10:12
0

Isso acabou de aparecer no StackOverflow alguns dias atrás, com um texto ligeiramente diferente, mas o problema é o mesmo e a solução é a mesma:

link

Em suma, a solução é fazer o login no Usermin como o usuário que você precisa canalizar e criar o pipe lá. O Virtualmin faz configurar usuários para executar coisas como o usuário quando canalizados do Postfix, mas não no contexto do Virtualmin ... apenas quando você os cria sob o Usermin.

Você também pode criar o pipe manualmente dentro do .procmailrc do usuário em questão.

    
por 12.03.2015 / 12:06

Tags