Next Previous Contents

8. Nettverks servere

De fleste nettverks servere bør ikke påkalle subprosesser av noe slag. Av sikkerhetsmessige grunner bør deres path være minimal.

Et viktig unntak er alle servicene som tillater å logge inn til systemet fra nettverk. Denne seksjonen beskriver hva som er miljøet i disse tilfellene. Hvis kommandoen er eksekvert på den perifere maskinen med rsh får den en annen path en hvis den er eksekvert med ssh. Sammenliknet er innlogging med rlogin, Telnet eller ssh forskjellig.

8.1 inetd

De fleste nettverks serverene har ikke en egen prosess som venter på forespørsler hele tiden. Dette arbeidet er delegert til en internett super server kalt inetd. Inetd lytter på alle definerte nettverks portene og starter den riktige serveren når det er en innkommende forespørsel. Denne oppførselen er definert i /etc/inetd.conf.

inetd er startet fra system oppstarts skript. Den arver path bare fra init prosessen. Den modifiserer ikke og alle servere som er startet fra inetd har init path. Et eksempel på slik server er imapd, serveren til IMAP post kontor kontrollen.

Andre eksempler på inetd prosesser er telnetd, rlogind, talkd, ftp, popd, mange http servere og så videre.

En ofte bruk av inetd fremdeles komplisert ved å benytte separate tcpd program til å starte den egentlige serveren. Det er et program som utfører ekstra sikkerhets sjekk før starten av den egentlige applikasjonen. Den påvirker ikke path (ikke bekreftet).

8.2 rsh

rsh daemon setter path fra _PATH_DEFPATH (/usr/include/paths.h) det er den samme path som login programmet bruker for vanlige brukere. Root vil få samme path som den vanlige bruker.

rshd eksekverer faktisk kommandoen den får med kommando linjen:

shell -c command-line

og "shell" er ikke et login skall. Det er ønskelig at alle skall som er nevnt i /etc/passwd støtter -c alternativet på kommando linjen.

8.3 rlogin

Rlogin kaller login for å opprette en ekte login prosedyre. Hvis du logger inn med rlogin, får du samme path som i login. De fleste andre måter å logge inn på en Linux maskin bruker ikke login. Bemerk forskjellen fra rsh.

Den faktiske login kommandone som er brukt er

login -p -h host-name user-name

-p bevarer miljøet unntatt variablene HOME, PATH, SHELL,TERM, MAIL og LOGNAME. -h forteller det perifere verts navnet for logging.

8.4 telnet

Telnet er likt rlogin. Det bruker login programmet og kommando linjen til å initialisere det på en liknende måte.

8.5 ssh

ssh her en egen path innstilling. Den har en fast path hvor den legger til katalogen der ssh er. Ofte betyr dette at /usr/bin er i path'en to ganger:

/usr/local/bin:/usr/bin:/bin:.:/usr/bin

Path inneholder ikke /usr/X11/bin og skall initialisert med ssh kommando er ikke et login skall. Derfor virker ikke

ssh remotehost xterm

og hva som helst i /etc/profile eller /etc/csh.cshrc kan endre på dette. Du må alltid benytte den eksplisitte path /usr/bin/X11/xterm.

ssh søker miljø variabler med formen VAR=VALUE fra filen /etc/environment. Dessverre fører dette til problemer med XFree86.


Next Previous Contents