De meeste netwerkservers zouden geen enkele subprocessen moeten aanroepen. Hun pad zou om beveiligingsredenen minimaal moeten zijn.
Een belangrijke uitzondering zijn alle diensten die het inloggen op het systeem vanuit een netwerk toestaan. Deze sectie beschrijft wat de omgeving is in deze situaties. Als het commando op de remote machine met rsh wordt uitgevoerd, krijgt het een ander pad dan wanneer het met ssh wordt uitgevoerd. Vergelijkbaar, het inloggen met rlogin, Telnet of ssh is anders.
De meeste netwerkservers hebben geen eigen processen die continue op verzoeken wachten. Dit werk is naar een Internet super server met de naam inetd gedelegeerd. Inetd luistert voor alle gedefinieerde netwerkpoorten en start de passende server als er een verzoek binnenkomt. Dit gedrag is gedefinieerd in /etc/inetd.conf.
inetd wordt vanuit systeem opstartscripts gestart. Het erft gewoon het pad van het init proces. Het wijzigt het geheel niet en alle servers die vanuit inetd worden gestart hebben het init-pad. Een voorbeeld van een dergelijk proces is imapd, de server van het IMAP post office protocol.
Andere voorbeelden van inetd processen zijn telnetd, rlogind, talkd, ftp, popd, veel http servers enzovoort.
Vaak gebruik van inetd is nog steeds gecompliceerd door het gebruiken van een gescheiden tcpd programma om de echte server te starten. Het is een programma dat aanvullende beveiligingscontroles uitvoert voordat de echte applicatie wordt gestart. Het beïnvloedt het pad niet.
De rsh daemon stelt het pad vanuit _PATH_DEFPATH (/usr/include/paths.h) in dat hetzelfde pad is als die het login programma voor gewone gebruikers gebruikt. Root krijgt hetzelfde pad als de gewone gebruiker.
In feite voert rshd het commando uit dat het op de commando-regel krijgt:
shell -c command-line
en shell is geen login shell. Het is wenselijk dat alle shells die in /etc/passwd worden genoemd, de -c optie voor op de commando-regel ondersteunen.
Rlogin roept login aan om de echte login procedure te maken. Als je met rlogin inlogt, krijg je hetzelfde pad als in login. De meeste andere manieren om op een Linux computer in te loggen maken geen gebruik van login. Merk het verschil met rsh op.
Het login commando dat feitelijk wordt gebruikt is
login -p -h host-name user-name
-p bewaart de omgeving met uitzondering van de variabelen HOME, PATH, SHELL, TERM, MAIL en LOGNAME. met -h geef je de naam van de remote host waarop je inlogt op.
Telnet is vergelijkbaar met rlogin. Het gebruikt het login programma en de commando-regel om het op vergelijkbare manier aan te roepen.
ssh heeft een eigen padinstelling. Het heeft een vast pad waaraan het de directory waar ssh zich in bevindt aan toevoegt. Dit betekent vaak dat /usr/bin twee keer in het pad voorkomt:
/usr/local/bin:/usr/bin:/bin:.:/usr/bin
In het pad komt /usr/X11/bin niet voor en de shell die door het ssh commando is aangeroepen is geen login shell. Dus
ssh remotehost xterm
werkt nooit, en van alles in /etc/profile of /etc/csh.cshrc kan dit veranderen. Je moet het pad /usr/bin/X11/xterm altijd expliciet gebruiken.
ssh zoekt naar omgevingsvariabelen in de vorm VAR=VALUE in het bestand /etc/environment. Helaas veroorzaakt dit een aantal problemen met XFree86.