Ich habe Probleme mit einem merkwürdigen berechtigungsbezogenen Verhalten: Wenn ich nginx so konfiguriere, dass es Port 8080 abhört, funktioniert alles wie erwartet, aber wenn ich einen anderen Port verwende, erhalte ich so etwas wie
2014/01/10 09:20:02 [emerg] 30181#0: bind() to 0.0.0.0:8090 failed (13: Permission denied)
im /var/log/nginx/error.log
Ich habe keine Ahnung, wohin ich schauen soll, daher weiß ich nicht genau, welche Teile der Konfiguration interessant sein könnten.
In der Datei nginx.conf ist nginx so konfiguriert, dass es als nginx ausgeführt wird:
user nginx;
Auch Benutzer Nginx ist in einer anderen Gruppe "Git"
in der site-config habe ich versucht so zuzuhören:
server {
listen 8090; #does not work
#listen 8080; #works
#listen 9090; #does not work
#listen 9090 default; #does not work neighter
#listen 80; #works!
server_name <some IP>;
...
}
Ich habe nur noch einen Listener, der Port 443 bedient.
Wenn ich einen anderen Dienst SimpleHTTPServer
starte, z. B. einen auf Port 8090 usw. als Nicht-Root, funktioniert alles einwandfrei:
$ python -m SimpleHTTPServer 8090
Serving HTTP on 0.0.0.0 port 8090 ...
localhost.localdomain - - [10/Jan/2014 09:34:19] "GET / HTTP/1.1" 200 -
Was können die Gründe für die generelle Verweigerung von Berechtigungen sein?
Das System ist Fedora 18 ngnix is stock fedora 1.2.9
quelle
/var/log/audit/audit.log
.Antworten:
Dies wird höchstwahrscheinlich mit SELinux zusammenhängen
Wie Sie der obigen Ausgabe entnehmen können, darf http mit SELinux im Erzwingungsmodus nur an die aufgelisteten Ports binden. Die Lösung besteht darin, die Ports, an die Sie binden möchten, zur Liste hinzuzufügen
Fügt Port 8090 zur Liste hinzu.
quelle
semanage: command not found
, können Sie es mit installierenyum install policycoreutils-python
.