Onde colocar o soquete, então o PrivateTmp pode ser verdadeiro

1

Eu tenho um programa em C ++ que deve se comunicar com outros serviços (incluindo httpd ), e faz isso por meio de um soquete em /tmp

Com o advento de systemd e a configuração PrivateTmp=true , processos como o httpd não podem mais ver o soquete do meu programa por padrão. Não quero que os usuários alterem a configuração PrivateTmp de httpd , já que é uma boa proteção.

No entanto, onde devo colocar meu arquivo de soquete (que cria criado / excluído no início / parada do meu serviço) para que ele possa ser compartilhado com outros processos?

(Ou é a única / correta solução para dizer aos usuários para transformar PrivateTmp off ??)

    
por TSG 05.03.2016 / 19:49

1 resposta

0

Você pode colocar seu soquete em /var/tmp , que é um diretório gravável do mundo com o bit pegajoso, como /tmp .

Se o seu programa é um daemon iniciado pelo systemd você pode considerar usar RuntimeDirectory=somedir no arquivo da unidade, então esse diretório será criado em /run quando sua unidade for iniciada e removido quando parar. Você poderia então criar seu soquete em /run/somedir/ .

    
por 05.03.2016 / 20:41