table of contents
services(5) | File Formats Manual | services(5) |
BEZEICHNUNG¶
services - Liste von Internet-Netzwerkdiensten
BESCHREIBUNG¶
services ist eine einfache ASCII-Datei für die Zuordnung einfach lesbarer Namen von Internet-Diensten zu den zugrundeliegenden zugehörigen Portnummern und Protokolltypen. Jedes Netzwerkprogramm sollte sich seine Portnummer (und das Protokoll) aus dieser Datei holen. Mit den C-Bibliotheksroutinen getservent(3), getservbyname(3), getservbyport(3), setservent(3) und endservent(3) können Sie aus einem Programm heraus diese Datei abfragen.
Portnummern werden von der IANA (Internet Assigned Numbers Authority) vergeben. Ihre derzeitige Politik ist es, jeder Portnummer sowohl das TCP- als auch das UDP-Protokoll zuzuordnen. Daher werden die meisten Einträge zweifach vorhanden sein, selbst bei reinen TCP-Diensten.
Portnummern unterhalb 1024 (so genannte »niedrige« Ports) können nur vom Systemverwalter (root) zugewiesen werden (siehe auch bind(2), tcp(7) und udp(7)). Das soll für über niedrige Ports mit dem System verbundene Clients gewährleisten, dass an diesem Port eine Standardimplementierung läuft und keinen bösartigen, vom Benutzer der Maschine gestarteten Dienst. Von der IANA veröffentlichte Portnummern (»well-known port numbers«) liegen normalerweise in diesem nur root zugänglichen Bereich.
Das Vorhandensein eines Dienste-Eintrags in der services-Datei bedeutet noch nicht, dass dieser Dienst derzeit auch auf der Maschine läuft. Siehe inetd.conf(5) zur Konfiguration der angebotenen Internetdienste. Beachten Sie jedoch, dass nicht alle Netzwerkdienste von inetd(8) gestartet werden, also auch nicht in inetd.conf(5) eingetragen sind. Insbesondere News(NNTP)- und Mail(SMTP)-Server werden häufig von Skripten beim Hochfahren des Systems gestartet.
Den Speicherort der Datei services definiert das Makro _PATH_SERVICES in /usr/include/netdb.h. Üblicherweise ist der Pfad auf /etc/services gesetzt.
Jede Zeile beschreibt einen Dienst und hat folgende Form:
- Dienstname Port/Protokoll [Aliase …]
- wobei:
- Dienstname
- Die leicht lesbare Bezeichnung für den Dienst, unter der er bekannt ist und mit der er gefunden wird. Groß-/Kleinschreibung wird beachtet. Häufig trägt das Client-Programm den gleichen Namen wie Dienstname.
- Port
- ist die für diesen Dienst vorgesehene, dezimale Portnummer.
- Protokoll
- ist die Art des zu verwendenden Protokolls. Dieses Feld sollte einem Eintrag in der Datei protocols(5) entsprechen. Zu den typischen Werten gehören tcp und udp.
- Aliase
- ist eine optionale Liste weiterer Namen für diesen Dienst. Auch hier wird zwischen Groß- und Kleinschreibung unterschieden.
Zum Trennen der Felder können Leer- oder Tabulatorzeichen verwendet werden.
Kommentare beginnen mit dem Zeichen # und erstrecken sich bis ans Zeilenende. Leerzeilen werden ignoriert.
Der Dienstname sollte in der ersten Spalte beginnen, da führende Leerzeichen nicht entfernt werden. Dienstnamen können aus allen druckbaren Zeichen außer Leer- und Tabulatorzeichen bestehen. Jedoch sollte die Auswahl konservativ erfolgen, um Probleme bei der Verbindung unterschiedlicher Systeme zu vermeiden. Sinnvoll wäre z.B. die Verwendung von a-z, 0-9 und Bindestrich (-).
Anders aufgebaute Zeilen sollten nicht in der Datei stehen. (Derzeit werden solche von getservent(3), getservbyname(3) und getservbyport(3) stillschweigend übergangen. Darauf sollte man sich aber nicht verlassen.)
Diese Datei kann über ein Netzwerk verteilt werden, wenn netzwerkweite Namensdienste wie Yellow Pages/NIS oder BIND/Hesiod eingesetzt werden.
Eine Beispiel-services könnte so aussehen:
netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol msp 18/udp # message send protocol chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp 21/tcp # 22 - unassigned telnet 23/tcp
DATEIEN¶
- /etc/services
- die Liste von Internet-Netzwerkdiensten
- <netdb.h>
- Definition von _PATH_SERVICES
SIEHE AUCH¶
listen(2), endservent(3), getservbyname(3), getservbyport(3), getservent(3), setservent(3), inetd.conf(5), protocols(5), inetd(8)
Assigned Numbers RFC, der aktuellste: RFC 1700 (auch bekannt als STD0002)
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze <joey@infodrom.org>, Mike Fengler <mike@krt3.krt-soft.de>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
2. Mai 2024 | Linux man-pages (unveröffentlicht) |