Emnekode: SOl35A 11.12.2003. Alle trykte og skrevne hjelpemidler



Like dokumenter
Emnekode: SO135A Dato: onsdag 25. feb. I Antall oppgaver: 4

faks: Avdeling for Ingeniørutdanning. Cart Aælersgate Oslo - tlf 05. iu@hio.no

Avdeling for ingeniørutdannlng. Con Adelersgate Oslo. tlf: faks:

d~~ "5(~~~~ ~ \ - -~-- en av disse: Annen lærer r Studieleder/ Fagkoordinator Utarbeidet av (faglærer) :

Antall sider:5 (Inkludert denne) Alle skrevne og trykte hjelpemidler samt kalkulator

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

-/tmp med navn på alle kataloger og filer etter at disse

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

Oppgave 1 - Java og prosesser (20%)

EKSAMEN. Operativsystemer. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

Høgskoleni Østfold. Ny/utsatt EKSAMEN

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

Kurset består av to relativt uavhengige deler. Foreleser: Hårek Haugerud, rom PS431

EKSAMEN. Dato: 7. desember 2016 Eksamenstid: 09:00 13:00

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE. Antall sider (Inkl forsiden): 8. Alle trykte og håndskrevne

Løsningsforslag til eksamen 24. november 2015

lfæ~~~~:::j~~:~l -.~=:~-t::-d I Alle trykte og håndskrevne EKSAMENSOPPGA VE Side l av 5 Eksamenstid:

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

Oppgave 1 - Linux kommandolinje (%)

Antall sider:s (inkludert denne) Alle skrevne og trykte hjelpemidler samt kalkulator

Emne: Datamaskinarkitektur Emnekode:lO 134A Faglig veileder: Lars Kristiansen

Prøve- EKSAMEN. Operativsystemer med Linux

EKSAMEN. Operativsystemer og nettverk

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

Filer og kataloger, prosesser og jobber

EKSAMEN. Emne: Datakommunikasjon

Lynkurs i shellprogrammering under Linux

Shellscripting I. Innhold

Fjerninnlogging over Internett

UNIVERSITETET I OSLO

JSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider:

Eksamensinformasjon. Prosesser. Prosesser. Eksamensoppgave. Operativsystemer (DATS/ITPE2500) Bokmål 06. juni 2017 kl

EKSAMEN. Emne: Datakommunikasjon. Dato: 30. Nov 2016 Eksamenstid: kl. 9:00 til kl. 13:00

Emnekode: LV121A Dato: Alle skrevne og trykte hjelpemidler

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

Emnekode: SO 380E. Dato: I L{. aug Antall oppgaver: -4

$ls -l $grep -i Olsen adresseliste.txt less #!/bin/sh $echo `ls` $chmod 755. Praktisk Linux. Grunnleggende skall kommandoer. Irene Ludvigsen Husa

EKSAMEN ITF Webprogrammering 1 Dato: Eksamenstid: Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne)

Eksamen vår 2003 Operativsystemer og Ul'iTIX

EKSAMEN. Dato: 24. november 2015 Eksamenstid: 09:00 13:00

Ny EKSAMEN. Operativsystemer og nettverk

Emnenavn: Datakommunikasjon. Eksamenstid: 9:00 til 13:00. Faglærere: Erling Strand

Høgskolen i Telemark Fakultet for allmennvitenskapelige fag

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

Unix/Linux en annen måte å gjøre ting på

REMOTE OPERASJON, INNSTRUKS KLIENTOPPSETT. Foreningen Bergen Kringkaster / LA1ASK

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Velkommen som ny bruker av Uni Økonomi!

Emnenavn: Datakommunikasjon. Eksamenstid: Kl: 9:00 til kl: 13:00. Faglærere: Erling Strand

Forord. Brukerveiledning

Filterprogrammer og redirigering av I/O

EKSAMEN. Emne: Datakommunikasjon

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

Høgskolen i Gjøvik Institutt for informatikk og medieteknikk E K S A M E N. Grunnleggende programmering

FRC-Feeder-E. Et sikkert og raskt verktøy for overføring av data til File Record Converter Versjon 1.11

KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG

EKSAMENSOPPGAVE. IAI20102 Algoritmer og datastrukturer

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

EKSAMENSFORSIDE SKRIFTLIG EKSAMEN

Filterprogrammer og redirigering av I/O

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

Lite LITE. Veiledning for hurtiginstallering. Versjon 1.0

Gruppe(r): 2EY Eksamenstid, fra-til: Eksamensoppgaven består av. Antall sider: 4 (Inkludert denne)

OPPLÆRINGSREGION NORD. Skriftlig eksamen. DEL2001 Data- og elektronikksystemer. Høst Privatister. VG2 Data og Elektronikk

Emnekode: Faglig veileder: Veslemøy Tyssø Bjørn Ena~bretsen. Gruppe(r): I Dato: Alle skrevne og trykte hjelpemidler, skrivesaker og kalkulator

. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye.

E K S A M E N 96HINDA / 96HINDE (1 AA / AE)

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 5609 OBJEKTORIENTERT PROGRAMMERING

Løsningsforslag. Oppgavesettet består av 9 oppgaver med i alt 20 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

FINANSREGNSKAP med IKT 7,5 sp (ØABED1000) BEDRIFTSØKONOMI I med IKT 10 sp (ØABED6000)

~ Gruppe(r): 2EA$ 2EC rdato:24.02.æ

FTP Info til brukerne

Avdeling for ingeniørutdanning. Cort Adelersgate Oslo. tlf: faks:

, ~', -~ lalle trykte og skrevne hjelpemidler. I Kalkulator som ikke kan kommunisere med andre.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Manual for AL500AC og AL100AC

Eksamen i SLI 5 høsten 1993

HØGSKOLEN I SØR-TRØNDELAG

Unix/Linux en annen måte å gjøre ting på

Nyttige Linux-kommandoer. Hvordan du kan jobbe mer effektivt Dag Langmyhr

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

Generell informasjon

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

Labbene skal være oppsatt med dual boot. Disse labene er satt opp med dual boot, dvs. at vi må velge Linux eller Windows under oppstart av maskin.

I! Emne~ode: j Dato: I Antall OPf9aver Antall vedlegg:

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

Høgskolen i Gjøvik. Avdeling for elektro- og allmennfag K O N T I N U A S J O N S E K S A M E N. EKSAMENSDATO: 11. august 1995 TID:

Eksamensinformasjon. Linux kommandolinje. Linux kommandolinje. Eksamensinformasjon. Fakultet: Teknologi, kunst og design. Tid: 3 t.

! Antall oppgaver: Antall vedlegg: 5 3 o. Kalkulator. alle skrevne og trykte

HØYSKOLEN I OSLO, AVDELING FOR INGENIØRUTDANNING

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

Transkript:

I Gruppe(r): I I JI G høgskolen i oslo Emne: Operativsystemer og UNIX Emnekode: SOl35A i Faglig veileder: Hårek Haugerud 2.klassene, DATA Dato: 11.12.2003 Eksamensoppgav Antall sider (inkl. Antall op~gaver: en består av: forsiden): 5 Eksamenstid: 09.00-12.00 Antall vedlegg: O Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler Kandidaten må selv kontrollere at oppgavesettet er fullstendig. Ved eventuelle uklarheter i oppgaveteksten skal du redegjøre for de forutsetninger du legger til grunn for løsningen. Avdeling for Ingeniørutdanning. Cort Adelersgate 30. 0254 Oslo. tlf: 22 45 3200. faks: 22 45 32 05. iu@hio.no

Eksamen høst 2003 Operativsystemer og UNIX Les nøye gjennom oppgavene før du begynner og pass på å besvare alle spørsmålene. Alle trykte og skrevne hjelpemidler er tillatt. Oppgavene vil ikke bli vektlagt likt ved sensur. En sannsynlig fordeling er at oppgave 1 teller 10%, oppgave ~ teller 35%, oppgave 3, ~O%, oppgave,l, 15% og 5 teller ~O%. De som ønsker det kan besvare oppgavene eller deler av oppgavene på engelsk. Sett gjerne egne forutsetninger dersom du synes oppgaveteksten er uklar. Beskriv forutsetningene og løs oppgaven utijra dem. NB! Tekstens apostrofer: ( er en liten \ mens J er en liten / Oppgave 1 I denne oppgaven skal du i delspørsmål a) til d) løse problemet ved å angi en kommando på en linje, slik du ville ha tastet den inn til bash på en Linux-maskin fra tastaturet (du svarer for eksempel mkdir kat hvis du blir spurt: Opprett en katalog med navn kat). a) Gi en kommando som flytter deg til katalogen /usr/bin. b) Gi en kommando som kopierer alle filer i katalogen du står i til www i din hjemmekatalog. c) Finn ut hvilke kataloger som er i din $PATH. d) Du leser en webside på gnu. arg. Finn ut hvilke gateways de pakkene du sender ut er innom på veien til gnu. arg. gateways pakker som du sender til gnu.org er innom på veien. e) Hva blir output av kommandoen echo It'dirname /usr/bin/emacs'/'basename /usr/bin/emacs'lt f) $ man awk gir blant annet: Records and fields Records are read in one at a time, and stored in the variable $0. The record is split into fields vhich are stored in $1, $2,..., $MF. The built-in variable MF is set to the number of fields. Gitt følgende: $ ls -l /usr/bid./emacs lrwxrvxrvx 1 23 Jan 22 2003/usr/bin/emacs -) /etc/alternatives/emacs Hva blir output fra kommandoen la -l!uar!bin!_ca avk '{print.mf}' g). dirs"-/deleted" S echo.dir -/deleted. cd -/deleted. cd.dir bash: cd: -/deleted: lo auch file or directory Forklar hvorfor cd -/ deleted går bra mens cd $dir feiler. 1

Oppgave 2 a) Lag et bash-script med navn vhere som tar ett og bare ett argument og som ellers avslutter med en feilmelding. Scriptet skal tolke argumentet som et programnavn og finne ut om det ligger et kjørbart program i.path med dette navnet. Hvis det gjør det skal det skrive ut full path til programmet og avslutte letingen. Hvis argumentet ikke er et program i $PATH skal ingen ting skrives ut. b) På et Linux-system forekommer det ofte at man må gå igjennom mange lag med linker for å finne ut hvilket program som egentlig kjøres når man gir en kommando. Ønsker man for eksempel å finne ut hvilket program som startes når man kjører emacs, kan man starte letingen med vhere-scriptet i forrige deloppgave. Det kan føre til følgende leteaksjon på maskinen cube: $ vbere emacs /usr/bin/_cs $ ls -l /usr/bin/emacs lrn:rvxrvx 1 $ la -l /etc/alterdatives/emaca lrvxrvzrvx 1. la -l /uar/bin/emaca21 lr.~.~.a 1. ls -l /uar/bin/emaca21.2 -rvxr-xr-x 1 23 Jan 22 2003 /usr/bin/emacs -> /etc/alternatives/emacs 16 May 30 2003 I.tc/al~.rna~ives/emacs -) lusr/biu/emaca21 10 Jan 22 2003 /uar/bid/emaca21 -> emaca-21.2 3978292 "ar 22 2002 lusr/bid/emacs-21.2 Legg merke til at full path måtte settes før emacs-21. 2 i den siste ls-kommandoen. Dette er tidkrevende og din oppgave går ut på å skrive et script delink som gjør dette automatisk. Anvendes delink på /usr /bin/ emacs, skal det søke nedover i linkene til det finner det underliggende programmet og gjøre en ls -l til programmet gitt med full path. Underveis skal linkene som besøkes listes slik: Sdelink /usr/bin/_cs 1 lrv~vxrvx 1 1rwxrvxrv% 1 -rvxr-xr-x 1 23 Jan 22 2003 /usr/bin/emacs -> /etc/alternatives/emacs 16 Kay 30 2003 /etc/alternatives/emacs -> /usr/bin/emacs21 10 Jan 22 2003 /usr/bin/emacs21 -> emacs-21.2 3978292 Kar 22 2002/usr/bin/emacs-21.2 Legg merke til at i 3. line av output fra delink står emacs-21. 2 linken uten full path. Pass på at scriptet takler dette når det søker nedover i linkene. Hvis argumentet til delink er en fil skal bare Is -1 for denne filen med full path skrives ut: $ delink /usr/bin/perl -rwxr-xr-x 3 $ 774947 Aug 10 03: 19 /var/hin/perl Hvis det viser seg at argumentet til delink er en link til en katalog, skal ikke den siste linjen vises, f. eks: $ d.link /var/mail lrvzrvxrwx 1 10 Jan 22 2003 /var/88il -) daemon.pool/mail I dette tilfellet er /var/spool/mail en katalog. Ingen output skal gis om man bruker delink direkte på en katalog, for eksempel/etc. Du kan anta at delink alltid mottar ett og bare ett argument. c) Lag et bash-script med navn show som tar ett og bare ett argument og ellers avslutter med en feilmelding. Det skal bruke de to foregående scriptene where og delink på en slik måte at hvis et kjørbart program som ligger i $PATH gis som argument til show, vil det gi full path til programmet. Altså: 2

$ show emacs -rvxr-xr-x 1 1 1 1 23 Jan 22 2003 /usr/bid/emacs -) /etc/alternatives/emacs 16 May 30 2003 /etc/alternative./emacs -) /usr/bin/emacs21 10 Jan 22 2003 /usr/bid/emacs21 -) emacs-21.2 3918292 Har 22 2002 /usr/bid/emacs-21.2 og $ shov ls -rvxr-xr-x 1 43784 Har 18 2002 /bin/la Hvis argumentet ikke ligger i $PATH, skal en feilmelding gis. Du kan anta at where og delink Oppgave 3 ligger i $PATH. I starten av denne oppgaven skal vi se på prosesser som multitaskes, men som må serialiseres når de bruker en felles variabel. a) Hva er et kritisk avsnitt. Forklar kort. b) Hva er en semafor. Forklar kort. c) En semafor som er initialisert til 8=1, brukes av 3 prosesser som jobber mot en felles variabel. Prosessene kaller alltid først vait, gjør et antall instruksjoner og kaller så signal. Forklar hvilke verdier 8 kan anta mens prosessene kjører. d) Forklar kort hvordan Linux-kommandoen nice virker inn på det som skjer i Round Robin-køen. e) Du og din nabo er koblet til samme HUB. Du kjører 8om Ethereal på din maskin. Naboen din bruker 8sh, ftp, ternet. For hvilke av de 3 appliaksjoene har du mulighet til å lese naboens passord? Forklar kort. f) Du og din nabo er koblet til samme Switch. Du kjører som Ethereal på din maskin. Naboen din bruker ssh, ftp og telnet. For hvilke av de 3 appliaksjoene har du mulighet til å lese naboens passord? Forklar kort. g) Gitt følgende: cube$ traceroute nexus traceroute to nexus.iu.hio.no (128.39.89.10), 30 hopa max, 38 byte packets 1 cadeler30-gv.uninett.no (128.39.74.0 0.769 as 0.696 as 0.579 as 2 nexus (128.39.89.10) 0.617 ma 0.443 ms 0.748 as Vil nexus motta cubes lp-adresse når cube sender pakker til nexus? Forklar kort. h) Vil nexus motta cubes MAC-adresse når cube sender pakker til nexus? Forklar kort. i) Hva er cadeler30-gw.uninett.no? Oppgave 4 I denne oppgaven skal du skrive to Perl subrutiner som skal brukes i den siste oppgaven til å lage en enkel Honeypot; en port-lytter. a) Lag en perl subrutine som tar en streng som argument. Denne strengen inneholder informasjon som skal legges til logg-filen honeypot.log. Anta at filen ligger i katalogen der programmet kjører. Hver nye 3

informasjonsstreng i logg-filen skal starte med et tids/dato stempel; bruk en innebygd Perl-funksjon. Logg-filen skal åpnes og lukkes for hver gang info skrives til filen. Bruk lokale variabler. b) Linux-kommandoen ljd% -source http://vvv.iana.org/assigaments/port-numbers gir blant annet informasjon om tcp-tjenester med linjer som ftp aah tehet amtp 21/tcp 22/tcp 23/tcp 25/tcp File Transfer [Control] SSB Remote Login Protocol Telnet Simple Mail Transfer Det er kun linjer på denne formen som inneholder strengen /tcp. Skriv en Perl subrutine GetServiceNamesom tar tar imot to parametre, min og max. Rutinen skal returnere et array indeksert med tcp-portnummere som ikke skal være mindre enn min og ikke større enn max. Verdien av arrayet med for eksempel index 22 skal være info om tcp-tjenesten med dette nummeret. I dette tilfellet strengen 'ssh(ssh Remote Login Protocol)' og tilsvarende for andre portnummere. Om det er portnummere mellom min og maks det ikke finnes info for, skal disse elementene ganske enkelt ikke defineres. Bruk lokale variabler. Oppgave 5 En Honeypot er en host som lokker til seg hackere og prøver å logge nøyaktig hva de gjør. En slik hast har i utgangspunktet ingen tjenester å tilby, så alle som prøver å komme inn bør betraktes som potensielle inntrengere. En port-lytter er den enkleste formen for Honeypot, et program som står og lytter på et antall porter og åpner en begrenset kommunikasjon hvis noen kobler seg til en port. I denne oppgaven skal du skrive en slik port-lytter ved å bruke Perl-sockets. Programmet skal selv definere verdien på to variabler $min og $max som bestemmer hvilke porter som det skallyttes på. Det vil si portene med nummer $min og.max og alle i mellom dem. For hvert portnummer skal programmet gjøre en fork ( ), slik at det startes en egen prosess for hvert portnummer og dermed for hver socket-forbindelse. Hver child-prosess skal åpne en server-socket på sitt portnummer. Hvis det ikke går, skal en passende feilmelding skrives ut. Hvis socket 'en kan opprettes og portnummeret for eksempel er 22, skal følgende informsajon skrives ut: Lytter på TCP-port 22 Bah (55B Remote Login Protocol) Informasjonen om t)enestenavnene skal hentes med subrutinen GetServiceNames fra forrige oppgave. Hver child-prosess skal sta i en evig løkke og vente på oppkoblinger. Hvis det kommer en opp~oblin~, skal den trekke ut lp-adressen til inntrengeren og prøve å lese ett buffer med et recv()-kall. Deretter skal forbmdelsen avsluttes og info, inkludert det leste bufferet, skrives til logg-filen ved hjelp av subrutinen vritelog fra forrige oppgave. Hvis det er en oppkobling på port 22 som sender 'heiiiii', skal følgende (eller tilsvarende) skrives til logg-filen: Tue Dec 9 14:07:47 2003 Tilkobling på TCP-port 22 (aah (SSH Re8ote Locin Protocol» fra 82.87.171.e9 heiiiii Husk at writelog selv legger på tidsstempelet. Du kan sette Reuse og Listen til 1 når du lager socket'ene og buffer-størrelsen til 1000. Det er mulig for en prosess å lage mange samtidige sockets med forskjellige portnummere, ved å bruke en egen IO::Select modul. Ser du noen fordeler/ulemper ved å bruke en slik metode i forhold til å fork'e? -SLUTT- 4