I:mne: Linux Emnekode i L V379E Iraglig veileder: Harek Haugerud Gruppe(r): Elektro ~ksarnensoppgaven oestar av: Antal! sider (inkl. Forsiden): 6 uato: mandag 27. februar I\ntall oppgaver: 4 Eksamenstid: 9.00-12.00 Antal! vedlegg' 0 Tillatte hjelpemidler: Aile trykte 09 skrevne Kandidaten ma selv kontrollere at oppgavesettet er fullstendig. Ved eventuelle uklarheter oppgaveteksten skal du redegjore for de forutsetninger du legger til grunn for losningen. Avdeling for ingeniorutdanning. Cort Adelersgate 30. 0254 Oslo. Uf: 22 45 32 00. faks: 22 45 32 05. iu@hio.no
Eksamen var 2006 Linux Les n_ye gjennom oppgavene f.-r du begynner og pass po a beware aile sp_rsmtilene. Aile trykte og skreme hjelpemidler er ttllatt. Oppgavene vii ikke bli vektlagt likt ved sensur. En sannsyniig fordeling er at oppgave 1 teller 1096 mens oppgave 2, 3 og teller 3096 hver. De sam.-nsker det kan besvare oppgavene eller deler av oppgavene pa engelsk. Sett gjerne egne forutsetninger dersom du synes oppgaveteksten er uklar. Beskriv forotsetningene og '_s oppgaven utifra demo Oppgave 1 I denne oppgaven skal du i aile delswrsmalene l~ problemet ved i. angi en kommando pa en linje, slik du ville ha tastet den inn til bash pa en Linux-maskin fra tastaturet (du svarer for eksempel mkdir kat hvis du bur spurt: Opprett en katalog moo navn kat). a) Apne filen prog. bash moo emacs som en bakgrunnsprosess b) Flytt filed info. txt i katalogen over der do star til katalogen der do star c) Gi eier og gruppe alle rettigheter og addle brukere ingen rettigheter til filen info. txt i katalogen del du stir d) Skriv ut aile linjer i filed /etc/passvd som inneholder strengen root e) Finn antau linjer i en tang listing av aile Linux-m_1cinens prosesser som inneholder strengen root f) Legg resultatet av kommandoen UDaae i variabelen $08 g) Studer f~lgende utdrag av manualsiden for kommandoen date NAME SYNOPSIS DESCRIPTION date - print or set the.yst.. date and tiae date [OPTION]... [+FORMAT] Display the curr8dt time in the given FORMAT, or set the system date -d, -dat-strirg display time de8cribed by STRING, not 'now' -f, --fil_datefile like --date once for each line of DATEFILE -r, --reference=file di8play the last aodification t1ae of FILE -ft, --rfc-2822 output RFC-2822 compliant date string FORMAT controls the outp'ft. XC '1.0 'I.F 1011 'I.a x. xs XT Xy century (year divided by 100 add truncated to an integer) [00-99] date (mm/dd/yy) S888 as Xy-x.-~ 8onth (01..12) time, 24-hour (hh:_) seconds since '00:00:00 1970-01-01 UTC' (a GNU extension) second (00..60); the 60 is necessary to accommodate a leap second ttae, 24-hour (hh:mm:ss) year (1970...) 1
%z 'l.z BFC-2822 style numeric tlaezone (-0500) (a nonstandard enension) time zone (e.g., EDT), or nothing if no time zone is determinable Gi en kommando som gir output av typen 1139839411 der tallet er antall sekunder som bar gatt regnet fra 1. januar 1970 til tidspunktet filen info. txt 8ist bie endret. Du vii ha bruk for denne kommandoen kommandoen gir. oeste oppgave og f~lgeode eksempel kan klargj~re bva deone. 18-1 e1dre Dyer. -rw 1 haugerud drift 0 Feb 14 11:61 e1dre -rv 1 haugerud drift 0 Feb 14 11:66 Dyere Kommandoen du lager vii gi 1139914280 for filed eldre og 1139914564 for filed nyere nyere. Det sjste tallet er 284 ~rre end det f~rste, sided filed nyere ble modifisert 284 sekunder, eller omtrent 5 minutter, etter filed eldre. For~vrig er de 36 8.r som hat gi.tt sided 1970, omtrent 1136073600 sekunder. Oppgave 2 USB-enheter som minnebrikker, mp3-spiller og digitale kameraer kan under Linux ofte monteres som en vanlig disk uten at man trenger egne drivere for enheten. Hvis man kobler til et digitalt kamela pi denne mated, er det ofte man kun ~nsker i Iaste ned biidene som er tatt sided forrige gang bilder ble Iastet ned til barddisken. Dette kan for eksempel gj~res ved i Iaste ned alle filer pi kameraet som er nyere end det siste bildet du bar lastet ned. I denne oppgaven skal du lage to bash-script BOrn sammen kan brukes til dette. a) Lag et bash-script moo navn nyest som tar et katalognavn som argument. Scrlptet skal finne den nyeste filed av aile i define katalogen og dens underkataloger. Output skal valre tidspunktet den nyeste filed gist ble endret, gitt som antall sekunder etter 1. januar 1970. Bruk date-kommandoen du lagde i siste deloppgave pi. oppgave 1. Hint: kommandoen find dir -type f lister aile filer i katalogen dir og aile filer i dens underkataloger. b) Lag et bash-script med navn datocp som fra komandolinjen akal kunne kj~res slik: t datocp tradlr 1:.11Dir Det f~rste argumentet er katalogen filer skal kopieres fra og det andre argumentet er katalogen filer skal kopieres til. AIle filer sam bar er en nyere data eon den nyeste filed i katalogsystemet under katalogen /holle/hh/foto skal kopieres. Bruk scriptet nyest fra oppgave a) til a finne den nyeste filed.. Hvis scriptet ikke startes med n~yaktig to argumenter skal scriptet avsluttes og bruker fa beskjed om riktig syntaks. Hvis f~rste argument ikke er en katalog eller ikke kan nas eller leses fra skal scriptet avsluttes og broker fa beskjed. Samme beskjed ide tre tilfellene 'ikke katalog eller kan ikke nas/leses' er OK. Hvis andre argument ikke er en katalog eller ikke kan nas eller skrives til skal scriptet avsluttes og bruker fa beskjed. Scriptet skal bare kopiere lesbare filer. Bruk opsjonen -p tit cp for a bevare filenes tidsstempel. Gi brukeren inforinasjon om hva som skjer for hver fil som kopieres 2
Oppgave 3 a) Du bar et Linux-program, a.out, som regner pa et problem i timesvis og tilslutt skriver resultatet til skjermen. Angi en Linux-kommando som starter programmet slik at det bur en bakgrunnsprosess som skriver resultatet ti1 filed res.txt nil" den er ferdig. b) Hva bur output av f~lgende kommandoer. S echo -god- > fl1..cho -dac- > fl1 $ echo "tl1"» fi1 S echo "all.-» fl1. cat 111 I aon c) Anta at f(j}gende script heter huff. bash. Hva skjer ni.r du kj(jrer det og hvorfor b(jr du IKKE kj(jre dette scriptet?., /bid/baah huff. bash a hutf.bash a d) Du kj~rer f~lgende shell-script: "/b~ pvd1='pvd' cd.. pvd2-' pvd, if [ "Spvdl" - "Spvd2" ] then echo "Like"" f1 og det gir sam output Like',. I hvilken katalog befinner du deg? e) Pa en Linux-maskin er de to f~rste linjene moo output fra. ifconfig 80m f~lge.. /sb1d/ifconfig.tho Link encap:ethern.t RWaddr 00:90:27:11:67:23 1net addr:115.43.12.3 Bcast:115.43.13.255 Hask:255.255.254.0 Hva er denne maskinens lp-adr~, MAC-adr~ og netmask? f) Tidligere bar den vanligbte maten a distribuere filer pi Intemett vmrt a legge dem pi en web eller ftp-server med et navn som for eksempel ftp.gnu.org. I de senere arene bar fildeling ved bjelp av Peer-to-Peer(P2P} teknologi overtatt store deler av Internett-trafikken. Forklar kort prinsippene for P2P-fildeling. g) PA figuren (pi neste side) ser du en hacker som utnytter et kjent sikkerhetshull og hacker Beg inn pi en ftp-server. Fa. en annen maskin pa. nettverket kj~res programmet snort som kan kjenne igjen visse angrep hvis det kan lese nettverkspakkene. ViI snort kunne lese nettverkspakker adressert til ftp-serveren? Forklar kort. h) Ville en firewa.ll mellom Intemett og og HUB'en kunne stoppet angrepet i forrige deiswrsmil? Forklar kort. 3
Figure 1: Hacking Oppgave 4 a) Du er root pa. en Linux-maskin moo mange hundre brukere hvor de til na. bar fatt lov a endre Bitt innloggings-shell selv ved hjelp av kommandoen chsh. Sidell du bar en del srere og nerdete typer som brukere, bar de benyttet Beg av dette og begynnelsen av /etc/passvd ser na slik ut: root:x:o:o:root:/root:/bin/bash sshd:x:101:65534::/var/run/sshd:/bin/false hh: x: 1000: 1000: Hirek Haugerud: /home/hh: /bin/tcsh eva:x: 1001: 1001:Eva Hadler Vihovde:/home/eva:/bin/ksh diego: x: 1002: 1002: Diego Armando Maradona: /home/ diego: /bin/ash jodh:x:1003:1003:jon falsk:x:1004:1004:herodes Haugsand:/home/joDh:/bin/bash Fa~k:/home/falsk:/bin/false kjell:x: 1005: 1005:Kjell Inge R~e:/home/kjel1:/bin/there runel: x: 1006: 1006: Rune Zelow Lundquist: /home/runel: /bin/ar osaaa:x: 1007: 1007:0sama bin Laden:/home/osama:/bin/laden aylar:x:1008:1008:aylar L1e:/home/aylar:/bin/meg johan:x: 1009: 1009: Johan Vaaler:/home/johan:/bin/ders Siste kolonne linjen. filed angir default shell og kolonnen avsluttes av linjeskift; ingen mellomrom pa. slutten av At brukerne har sa. mange forskjellige shell gj~r brukeradministrasjon vanskligere og du vii na gi aile IbiD/bash som default shell, slik brukerne root og jonh allerede har. Men du ~nsker at brukere som bar /bin/false som shell skat beholdet det. Det hindrer clem i a. logge inn, men brukerkontoen beholdes. Lag et Perl-script som gj~r disse endringene og lager en ny /etc/passvd der aile brukere har /bin/bash som default shell, bortsett fra at de som opprinnelig hadde /bin/false beholder det. Du kan anta at du har root-rettigheter slik at du kan overskrive /etc/passvd. b) Pa. wwv. gulesider. no finnes det na. en gratis tilgjengelig web-basert telefonkatalog. I denne oppgaven skat du lage en kommandolinje-telefonkatalog ved a. skrive et Perl-script som trekker ut informasjon fra kildekoden til web-sidene BOm gulesider lager. Scriptet skat here tel. pi og f~lgende er et typisk resultat nar du bruker det: $ tel.pl Eva Vihovde Eva Vihovde, Sturlas v 13, 0772 Oslo Mobil: 928 88 788 Eva Vihovde, Sturlas v 13, 0772 Oslo Fast: 22496287 Eva Aske, Vihovde, 5554 Valevag Mobil: 95279937 Noen for~k viger at Linux-kommandoen 4
. lynx -source "http://vwv.gu1..1der.no/gsi/vhltesearch.do?etter-eva Vihovde" skriver til STDIN (vanligvis terminalvinduet) kildekoden til web-sided du ville fitt om du tastet inn "Eva Vihovde" i en browser. For hver match pi et navn vii kildekoden inneholdet et avsnitt som begynner med en linje som inneholder strengen RESULT ITEM START og avsiuttes med en linje som inneholder strengen RESULT ITEM END og kan for eksempelet over se slik ut: <!-- RESULT 1m! START --> Evabbsp; Vihovde</b> Sturlaa v 13, 0772 Oslo <a href--https://login.gulesider.no/gsi/aas.do?n-92888788- title-"send SMS til nummer">928 88 788</a><br> <1-- RESULT ITEM END -->. <!-- RESULT ITPJt START --> Evambep; Vihovde</b> Sturlaa v 13. 0772 Oslo 22496287 <!-- RESULT ITDI EID -> < 1-- RESULT ITfJf START --> Evabbsp; Aake</b> Vihovde. 5554 Valevag <a href--https://login.ga18s1der.do/gs1/ams.do?n-96279937- t1tle-"send SMS t11 Du..er">962 79 937</a><br> <!-- RESULT ITFJt END --> Linjer med bare en prill (punktum) betyr at det her star en eller Here linjer med html-formatering som vi ikke trenger. Ved a studere output fra noen tester med forskjellige navd, finner du ut f~lgende om linjene innenfor STARr og END-taggene:. Linjen BOm inneholder navnet er den eneste BOm avsluttes med </b> og inneholder ellers kun navnet. Linjen med &dressen inneholder alltid 4 siffer (postnummer) fulgt av et ord og det er kun i denne linjen hvor dette forekommer.. Linjen med mobilnummeret er den eneste hvor sekvensen 3 siffer, mellomrom, 2 siffer, mellomrom, 3 siffer forekommer. Linjen med fasttelefonnummer er den eneste hvor sekvensen 2 siffer, mellomrom, 2 siffer, mellomrom, 2 siffer, mellomrom, 2 siffer forekommer Bruk dette til a. trekke ut navn, adresse og telefonnummer slik at Perl-scriptet gir output tilsvarende eksempelet over. I tillegg ska! forekomster av tnbsp; skiftes ut med meilomrom. -SL U'IT - 5