Jest to sposób pakowania aplikacji. W większości * nix domyślną konfiguracją jest użytkownik nieuprzywilejowany, który nie może nasłuchiwać na porcie <1024, a serwery WWW używają 80 i 443.
Linux 2.2+, Solaris 10+ i FreeBSD pozwalają użytkownikom innym niż root słuchać na portach niższych niż 1024, ale domyślnie nie. Większość zaakceptowała użycie, root
więc pozostaje w użyciu.
Oprócz dostępu do powiązania z uprzywilejowanym portem musisz upewnić się, że użytkownik uruchamiający nginx ma dostęp do wszystkich potrzebnych plików. Prawdopodobnie nie musisz iść tak daleko, ale po prostu ustaw prawidłowe uprawnienia do plików / katalogów. Musisz także sprawdzić, czy skrypty startowe nie robią niczego podstępnego jak ulimit
zmiany (jak zawsze wydaje się, że mysql).
setcap
i getcap
pozwala zmienić lub wyświetlić cap_net_bind_service
możliwości pliku wykonywalnego. Będzie to obowiązywać dla każdego, kto wykonuje plik binarny.
setcap cap_net_bind_service=+ep /usr/sbin/nginx
SELinux zapewnia możliwość konfigurowania i kontrolowania możliwości na poziomie użytkownika.
Ustawienia systemu Freebsd
Zarezerwowane ustawienia portów są globalne dla systemu
sysctl net.inet.ip.portrange.reservedhigh=0
sysctl net.inet.ip.portrange.reservedlow=0
Solaris zapewnia precyzyjną kontrolę uprawnień na poziomie użytkownika. Są to przywileje związane z apache, ale prawdopodobnie będą działać również dla nginx.
/usr/sbin/usermod -K defaultpriv=basic,proc_exec,proc_fork,net_privaddr nginx