Nie można uruchomić szyn na porcie 80

1

Próbuję lepiej nauczyć się Linuksa, ale obecnie mam tylko bardzo ograniczone doświadczenie - proszę wybaczyć moją ignorancję w tej sprawie.

Próbuję uruchomić poręcze na porcie 80 i jako inny użytkownik, używając

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

ale to się nie udaje

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

Bieganie sudo netstat -anltp|grep :80 pokazuje, że port 80 nie jest otwarty

Próbowałem następujących, z ograniczonym powodzeniem:

sudo bundle exec rails s --port=80 -e production działa przy uruchamianiu serwera na porcie 80, ale nie jako użytkownik, którego chcę,

sudo -u [user_name] bundle exec rails s -e production działa przy uruchamianiu serwera jako prawidłowy użytkownik, ale nie na żądanym porcie.

Tymczasowo ustawiłem użytkownika, aby znajdował się w grupie Administratorzy, ponieważ przeczytałem, że jest on wymagany dla portów & lt; 1024, ale to też chyba nie pomogło.

Co jeszcze mogę spróbować?

fatty
źródło
Aby obejść to ograniczenie, właśnie ustawiłem iptables na przekieruj port 80 do portu 3000 i uruchamiam serwer szyny używając domyślnego portu.
fatty

Odpowiedzi:

1

Możesz uruchomić usługi na portach <1024 z rootem użytkownik . Grupa (administrator w twoim przypadku) nie ma z tym nic wspólnego.

Jest jednak kilka rzeczy, które możesz zrobić. Na przykład:

  • Użytkownik iptables przekierowuje porty (konfigurowalne z prawami roota).
  • Jeśli program na to pozwala lub masz dostęp do kodu: rozpocznij jako root, bind (), a następnie upuść uprawnienia.
  • Istnieje narzędzie o nazwie authbind przeznaczone dla takich przypadków, ale osobiście nigdy go nie użyłem, więc nie mogę komentować, jak to działa.
  • Użyj setcap, aby dodać uprawnienia do swojego programu.
Bgs
źródło
Ostateczną opcją byłoby edytowanie kodu źródłowego jądra w celu usunięcia limitu. Zobacz odpowiedź @ Quandary tutaj: Jak mogę uruchomić serwer w systemie Linux na porcie 80 jako zwykły użytkownik ?: http://serverfault.com/questions/112795/how-can-i-run-a-server-on-linux-on-port-80-as-a-normal-user/660121#660121
XP1