Não foi possível iniciar os trilhos na porta 80


1

Estou tentando aprender melhor o Linux, mas atualmente só tenho uma experiência muito limitada - então, desculpe minha ignorância nesse assunto.

Estou tentando iniciar trilhos na porta 80 e, como outro usuário, usando

sudo -u [user_name] bundle exec rails s --port=80 -e production

mas isso está falhando com

eventmachine.rb:572:in 'start_tcp_server': no acceptor (RuntimeError)

A execução sudo netstat -anltp|grep :80mostra que a porta 80 não está aberta \ escutando.

Eu tentei o seguinte, com sucesso limitado:

sudo bundle exec rails s --port=80 -e production funciona ao iniciar o servidor na porta 80, mas não como o usuário que eu quero,

sudo -u [user_name] bundle exec rails s -e production trabalha na inicialização do servidor como o usuário correto, mas não na porta desejada.

Eu configurei temporariamente o usuário para estar no grupo Administradores, pois li que é necessário para portas <1024, mas isso também não pareceu ajudar.

O que mais posso tentar?


Para contornar essa limitação, acabei de configurar o iptables para redirecionar a porta 80 para a porta 3000 e estou iniciando o servidor rails usando a porta padrão.
graxo

Respostas:


1

Você pode iniciar serviços em portas <1024 com usuário root . O grupo (administrador no seu caso) não tem nada a ver com isso.

Existem algumas coisas que você pode fazer. Por exemplo:

  • O usuário iptables para redirecionar as portas (configurável com direitos de root).
  • Se o programa permitir ou você tiver acesso ao código: inicie como root, bind () e, em seguida, abandone os privilégios.
  • Existe um utilitário chamado authbind que se destina a esses casos, mas eu pessoalmente nunca o usei, portanto não posso comentar como funciona.
  • Use setcap para adicionar privilégios ao seu programa.

A opção final seria editar o código fonte do kernel para remover o limite em primeiro lugar. Consulte a resposta do @ Quandary aqui: Como posso executar um servidor no Linux na porta 80 como um usuário normal ?: http://serverfault.com/questions/112795/how-can-i-run-a-server-on-linux -on-port-80-as-a-normal-user / 660121 # 660121
XP1
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.