permissões Linux e dnscrypt-proxy (permissão de rede?)

0

Eu perguntei isso em "pergunte ao Ubuntu" e tive muita sorte ainda, então eu pensei que eu poderia tentar aqui também link

Eu instalei com sucesso e me encontrei no meio da configuração do dnscrypt-proxy no Ubuntu 13.10 x64. No entanto, estou tendo alguns problemas com permissões em geral.

Eu adicionei um usuário com o seguinte comando:

sudo adduser --system --quiet --home /run/dnscrypt --shell /bin/false --group --disabled-password --disabled-login dnscrypt

e emitiu dnscrypt-proxy --daemonize --user=dnscrypt , mas sem sucesso. Então, eu tentei apenas --daemonize e, finalmente, apenas dnscrypt-proxy , o que resultou em um erro de permissão de ligação UDP. Ran como root e o erro desaparece. dnscrypt-proxy --user=dnscrypt resulta no retorno do erro. Eu estou supondo que está falhando por causa de alguma permissão, mas não tenho a menor idéia por onde começar ou o que mudar neste momento.

também gostaria de executar isso na inicialização da rede ou após o login. que eu acho que posso gerenciar, mas se você tiver uma sugestão, isso me pouparia tempo. Eu não entendo porque não posso executar isso como --user=dnscrypt , mas o root funciona bem. (Quero dizer, eu entendo porque o root funciona; D)

edit: Só para esclarecer um pouco mais, eu estou na verdade executando o elementary OS luna 0.2, que é baseado no ubuntu 13.10 (eu acredito)

    
por Michael Schmidt 23.01.2014 / 18:57

2 respostas

1

Você precisa criar um script de inicialização que deve usar o daemon start-stop para descartar os privilégios.

O aplicativo provavelmente requer acesso a soquete bruto e para tal raiz de operação (ou CAP_SOCK) é necessário. Não é possível como usuário normal.

Este link deve ser bastante útil: link

    
por 24.01.2014 / 15:35
1

A solução é definir corretamente cap_net_bind_service na porcentagemdnscrypt-proxy binário para que possa bind na porta 53 durante a execução como usuário não raiz ( dnscrypt ):

setcap cap_net_bind_service=+pe /path/to/dnscrypt-proxy

Se você executar dnscrypt-proxy dentro de um contêiner lxc , o comando acima precisará ser executado a partir do host .

    
por 24.08.2018 / 12:13