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

1

Estou tentando aprender o Linux melhor, mas atualmente tenho apenas uma experiência muito limitada - então, por favor, desculpe minha ignorância neste assunto.

Estou tentando iniciar os 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 de sudo netstat -anltp|grep :80 mostra 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 funciona ao iniciar o servidor como o usuário correto, mas não na porta desejada.

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

O que mais posso experimentar?

    
por fatty 25.06.2012 / 07:29

1 resposta

1

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

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

  • User iptables para redirecionar as portas (configuráveis com direitos de root).
  • Se o programa permitir ou você tiver acesso ao código: inicie como root, bind () e, em seguida, elimine os privilégios.
  • Existe um utilitário chamado authbind que serve para esses casos, mas eu pessoalmente nunca o usei, por isso não posso comentar como ele funciona bem.
  • Use o setcap para adicionar privilégios ao seu programa.
por 25.06.2012 / 11:30