Tehtävän suorittaminen aloitettu 9.3.2020 klo. 14:00
Laitteen tiedot, jolla tehtävä suoritettiin:
CPU: Intel i5-4670k
GPU: Nvidia GTX 1060 6 Gt VRAM
RAM: 16 Gt DDR3
Kingston DataTraveler G4 16 Gt, jossa Xubuntu 18.04.03
a) Tietokanta wepissä. Tee oma yksinkertainen, tietokantaa käyttävä ohjelma. Ohjelmalla tulee olla jokin käyttötarkoitus. Voit tehdä ohjelman muokkaamalla Teron koodia (muista lähdeviite).
b) Laita tietokantaohjelmasi toimimaan mod_wsgi:n kanssa.
tommy.wsgi ja hello.py tiedostojen sisällöt olivat joko suoraan Tero Karvisen ohjeesta tai muokattu näissä ohjeissa olleista esimerkeistä (linkki). Päättelin onnistuneeni asennuksessa, sillä sain kirjoittamani lauseen näkymään localhost-osoitteessa.
Automatic forms
Aloitin tietokantaa käyttävän ohjelman luomisen luomalla templates-kansion public_wsgi kansion alle komennolla ”mkdir templates”. Tämän jälkeen loin myös ”base.html” ja ”replies.html” nimiset tiedostot templates-kansioon nano-komennolla.
Liitin luomiini .html-tiedostoihin esimerkki templatet Tero Karvisen Flask Automatic Forms -artikkelista (linkki) ja korvasin hello.py-tiedoston sisällön samassa artikkelissa olevan esimerkki python-tiedoston sisällöllä. Yrittäessäni ajaa python-tiedostoa tämän jälkeen sain virheviestin siitä, että minulla ei ollut asennettuna ”sqlalchemy” ja ”wtforms” -moduuleita asennettuna. Jotenka asensin seuraavaksi nämä komennoilla ”sudo apt-get install -y python3-flask-sqlalchemy” ja ”sudo apt-get install python3-flaskext.wtf”. Tämän jälkeen onnistuin ajamaan python-tiedoston onnistuneesti komennolla ”python3 hello.py” ja sain formin sisältävän sivun näkymään localhost osoitteessa.
(huom. olin kuvan ottohetkellä muokannut jo hieman hello.py, base.html ja replies.html -tiedostoja, jonka takia sivun otsikot eroavat hieman Tero Karvisen esimerkistä).
Poistin ensin autoformed.db -tietokannan, joka oli luotu testatessani templatejen toimimista. Tämän jälkeen poistin python-tiedostosta ”osallistumis” -kentän ja lisäsin ”address” -kentän.
Muokkasin molemmista html-templateista otsikko-osioita ja lisäsin replies.html -tiedostoon nimen lisäksi osoitetiedon, jolloin vastauksissa näkyi lähettäjän nimen lisäksi tämän osoite.
Tehtävä suoritettu 9.3.2020 klo. 17:30
Muokkaukset:
23.3.2020, Lisätty laitteen tiedot, jolla tehtävä on suoritettu. Muokattu tekstin ulkoasua siistimmäksi.
Tehtävän suorittaminen aloitettu 2.3.2020 klo. 13:00
Laitteen tiedot, jolla tehtävä suoritettiin:
CPU: Intel i5-4670k
GPU: Nvidia GTX 1060 6 Gt VRAM
RAM: 16 Gt DDR3
Kingston DataTraveler G4 16 Gt, jossa Xubuntu 18.04.03
a) Hello Flask! Tee Python Flask hei maailma kehitysympäristössä. Voit siis käyttää tuotantoon sopimatonta app.run(debug=True) ajoa.
Aloitin asentamalla Flaskin komennoilla ”sudo apt-get update” ja ”sudo apt-get install python3-flask”. Tämän jälkeen loin uuden tiedoston käyttäjän kotihakemistoon komennolla ”nano hello.py” ja kopioin tiedostoon testausta varten Tero Karvisen tekemän lyhyen Python-ohjelman (http://terokarvinen.com/2020/hello-flask-python-web-app/). Vaihdoin hänen tekstiosuutensa tilalle ”Hello, World!” ja tallensin tiedoston painamalla Ctrl-X, Y ja Enter. Tämän jälkeen ajoin ohjelman komennolla ”python3 hello.py”, joka käynnisti ohjelman ja ilmoitti osoitteen, jossa voisin tarkastella sitä verkkoselaimessa (http://127.0.0.1:5000/). Verkkoselaimessa näkyikin aikaisemmin kirjoitettu teksti ”Hello, World!”, josta voidaan päätellä ohjelman toimivan halutusti.
b) Tuotanto-Flask. Tee tuotantotyyppinen asennus Flaskista käyttäen Apachen WSGI-moduulia. Kokeile, että pystyt muokkaamaan koodia ilman sudoa ja saat uuden version käyttöön käynnistämättä Apachea uudelleen. (‘touch foo.wsgi’).
Apache
Aloitin asentamalla Apachen komennolla ”sudo apt-get install apache2” ja testasin sivun toimivuuden menemällä localhost-osoitteeseen verkkoselaimessa, joka näyttikin Apachen default-sivun.
Tämän jälkeen muutin default sivun sisällön komennolla ”echo ”Cool stuff coming soon!”|sudo tee /var/www/html/index.html”, jonka jälkeen valitsemani lause näkyi localhost-osoitteessa.
Uusi käyttäjä
Tämän jälkeen loin uuden käyttäjän/ryhmän, jonka tarkoituksena on toimia esimerkiksi yhteisen projektin sijaintina ja johon voidaan lisätä ja poistaa käyttäjiä halutessa. Ensimmäiseksi loin käyttäjän ”harjoituswsgi” komennolla ”sudo adduser harjoituswsgi”. Syötin salasanan ja nimikenttään tiedot kenelle käyttäjä/ryhmä kuuluu (tässä tilanteessa laitoin tiedoksi tosin vain ”Harjoitus WSGI”, mutta normaalisti laitettaisiin esimerkiksi yhteyshenkilön nimi, joka on vastuussa kyseisestä projektista). Tämän jälkeen lukitsin käyttäjän komennolla ”sudo usermod –lock harjoituswsgi”, sillä keneenkään ei kuulu kirjautua suoraan käyttäjälle vaa tätä käytetään vain keskitettynä kansiona/sijaintina esim. projektissa (johon käyttäjät tekevät muutoksia omien tunnuksiensa kautta). Lisäsin vielä itseni luomaani ryhmään komennolla ”sudo adduser xubuntu harjoituswsgi”, jonka jälkeen asetin xubuntu-tilille salasanan. Kirjauduin ulos ja takaisisin sisään, jonka yhteydessä xubuntu-tili liitettiin harjoituswsgi-ryhmään.
Virtual Host Flaskille ja ohjelman asennus
Aloitin luomalla uuden .conf-tiedoston komennolla ”sudoedit /etc/apache2/sites-available/harjoituswsgi.conf”. Tiedostoon liitin Tero Karvisen valmiin mallin (http://terokarvinen.com/2020/deploy-python-flask-to-production/), johon tein tarvittavat nimimuutokset yms. omaa käyttöäni varten. Tämän jälkeen tallensin tiedoston ja aktivoin sen komennolla ”sudo a2ensite harjoituswsgi.conf” ja otin samalla default .conf-tiedoston pois käytöstä komennolla ”sudo a2dissite 000-default.conf”. Asensin tämän jälkeen myös tarvittavan WSGI-moduulin komennolla ”sudo apt-get install libapache2-mod-wsgi-py3”, jonka jälkeen käynnistin Apache-demonin uudestaan komennolla ”sudo systemctl restart apache2”. Komennolla ”apache2ctl configtest” sainkin tämän jälkeen vastaukseksi ”Syntax OK”.
Kun Apachen konfiguraatiot olivat kunnossa tein uuden kansion komennolla ”sudo mkdir /home/harjoituswsgi/public_wsgi” ja korjasin vaadittavat ongelmat käyttöoikeuksien kanssa komennoilla ”sudo chown harjoituswsgi:harjoituswsgi /home/harjoituswsgi/public_wsgi” ja ”sudo chmod g=rwxs /home/harjoituswsgi/public_wsgi”. Komennolla ”ls -ld /home/harjoituswsgi/public_wsgi” näin, että kansion oikeudet olivat kunnossa. Jäin kuitenkin hieman ihmettelemään kohtaa ”40”, sillä esimerkissä tämän luvun kohdalla on luku 4096, jonka oletin viittaavan jollain tasolla muistiin tai tilaan. En kuitenkaan törmännyt mihinkään ongelmiin, joten annoin asian toistaiseksi olla (Mikäli ongelmia olisi ilmennyt olisin yrittänyt selvittää asiaa tarkemmin). Tehtyäni nämä muutokset localhost-osoitteen error-koodi muuttui 403 -> 404, josta pystyin päättelemään muutoksien toimineen halutusti. Tämän jälkeen loin uuden .wsgi-tiedoston komennolla ”nano /home/harjoituswsgi/public_wsgi/harjoitus.wsgi” ja uuden python-tiedoston komennolla ”nano hello.py” (sillä olin tällä hetkellä jo public_wsgi kansiossa), johon liitin saman python-ohjelman kuin aikaisemmassa tehtävässä (ilman app.run(debug=True) riviä). Jolloin verkkosivu näytti kirjoittamani lauseen! Testasin myös sivun päivittämistä ilman apachen uudelleenkäynnistämistä tekemällä muutoksen python-tiedostoon ja tämän jälkeen ajamalla komennon ”touch harjoitus.wsgi”, joka päivitti sivun sisällön uuteen.
c) Lisää tuotanto-Flaskiin muotit (templates).
Loin aluksi harjoituswsgi-käyttäjän kotihakemistoon ohjeenmukaisen kansion, html-tiedoston ja python-tiedoston (http://terokarvinen.com/2020/flask-templates/), joihin liitin myös ohjeessa annetut sisällöt. Tämän jälkeen ajoin python-ohjelman komennolla ”python3 templates-flask.py” ja avasin verkkoselaimeen ohjelman antaman osoitteen (http://127.0.0.1:5000/), jolloin sain myös ohjeenmukaisen sivun näkynään
HUOM! Muokkaus 5.3.2020 klo. 10:00
Huomasin tehneeni Templatet alkuperäisessä palautuksessa väärin ja sain ne toimimaan oikein uudelleen tehtyäni harjoituksen tunnilla. Tällöin tiedostopuu näytti seuraavalta:
d) Sun IP. Tee Flask-sivu, jolla näkyy tietoja käyttäjästä. Esimerkiksi request.user_agent.string, request.remote_addr. Muista “from flask import request”.
Päätin muokata jo olemassa olevaa hello.py -tiedostoa, jotta en joutuisi muokkaamaan myös esim. wsgi-tiedostoa. Muokkasin hello.py-tiedostoa komennolla ”nano hello.py” ja lisäsin import-riville requestin. Lisäsin tämän jälkeen hello-funktioon kaksi muuttujaa kayttaja ja iposoite, jotka poimivat käyttäjän IP-osoitteen ja muut tiedot. Lisäsin nämä muuttujat myös palautettavaan lauseeseen, jolloin sain lopputulokseksi seuraavan.
Tehtävä suoritettu 2.3.2020 klo. 18:00
Muokkaukset:
5.3.2020, Korjattu väärin tehty harjoitus 23.3.2020, Lisätty laitteen tiedot, jolla tehtävä on suoritettu. Muokattu tekstin ulkoasua siistimmäksi.
Tehtävän suorittaminen aloitettu 23.2.2020 klo. 16:30
Laitteen tiedot, jolla tehtävä suoritettiin:
CPU: Intel i5-4670k
GPU: Nvidia GTX 1060 6 Gt VRAM
RAM: 16 Gt DDR3
Kingston DataTraveler G4 16 Gt, jossa Xubuntu 18.04.03
a) Tee alusta lähtien oma julkinen palvelin Internetiin.
Virtuaalipalvelin
Loin aluksi DigitalOceanissa uuden dropletin. Valitsin halvimman mahdollisen virtuaalipalvelimen, sillä sen teho on riittävä tehtävään. Vaihdoin myös palvelimen sijainnin Frankfurttiin. Tämän jälkeen odotin palvelin luonnin viimeistelyä. Palvelimen tullessa päälle otin siihen SSH-yhteyden komennolla ”ssh root@138.68.74.117”, jonka jälkeen syötin terminaaliin sähköpostiin saamani väliaikaisen salasanan ja vaihdoin tämän jälkeen uuden salasanan tämän tilalle.
Palvelimen konfigurointi
Seuraavaksi konfiguroin palvelimen. Laitoin palomuurin päälle komennoilla ”sudo ufw allow 22/tcp” ja ”sudo ufw enable” (tässä järjestyksessä, jotta ssh yhteys ei katkeaisi palomuuria käynnistettäessä). Tämän jälkeen lisäsin palvelimelle uuden käyttäjän ”tommy” komennolla ”sudo adduser tommy”, jonka jälkeen lisäsin uuden käyttäjän myös sudo-ryhmään komennolla ”sudo adduser tommy sudo”. Testasin vielä, että SSH-yhteyden ottaminen toimi ennen kuin poistin root-käyttäjän käytöstä. Otin uuden SSH-yhteyden palvelimeen komennolla ”ssh tommy@138.68.74.117”, jonka jälkeen syötin vielä salasanan ja sain palvelimeen etäyhteyden käyttäjän tunnuksilla. Poistin tämän jälkeen root-käyttäjän käytöstä komennolla ”sudo usermod –lock root” ja muutin SSH:n asetustiedostosta kohdan ”PermitRootLogin” yes -> no. Käynnistin myös ssh-palvelun uudelleen komennolla ”sudo service ssh restart”, jolloin tekemäni muutos tuli voimaan.
Apache
Ennen Apachen asentamista ja konfigurointia tein vielä namecheap-tililleni uuden A-tietueen ”harjoitus” ja liitin siihen uuden droplettini IP-osoitteen (Tällöin osoitteen pitäisi siis olla ”harjoitus.gratschew.com”).
Tehtävän suorittaminen aloitettu 6.2.2020 klo. 18.20
Laitteen tiedot, jolla tehtävä suoritettiin:
CPU: Intel i5-4670k
GPU: Nvidia GTX 1060 6 Gt VRAM
RAM: 16 Gt DDR3
Kingston DataTraveler G4 16 Gt, jossa Xubuntu 18.04.03
a) Asenna Apache, laita käyttäjien kotisivut (http://example.com/~tero) toimimaan. Testaa esimerkkikotisivulla.
Apachen asennus
Aloitin asentamalla Apachen antamalla terminaalissa komennot ”sudo apt-get update” ja ”sudo apt-get install apache2”. Testasin palvelimen toimivuutta avaamalla Firefoxin ja laittamalla hakukenttään ”localhost”, jolloin selaimeen avautui Apachen default-sivu. Tästä voin päätellä asennuksen onnistuneen.
Tämän jälkeen laitoin vielä palomuurin päälle komennolla ”sudo ufw enable” ja tein siihen reiän nettisivua varten komennolla ”sudo ufw allow 80/tcp”.
Käyttäjien kotisivujen luonti
Aloitin käyttäjien kotisivujen luonnin pistämällä päälle userdir-moduulin komennolla ”sudo a2enmod userdir”, jonka jälkeen käynnistin Apachen myös uudelleen komennolla ”sudo systemctl restart apache2”, jolloin tekemäni muutos tuli voimaan. Kirjoittamalla Firefoxin osoitekenttään localhost/~xubuntu/, esille tuli sivu, joka antoi 403 Forbidden -virheen.
Tämä johtunee siitä, että en ole vielä tehnyt varsinaista nettisivua käyttäjälle. Navigoin itseni kansioon /home/xubuntu, jonne voin tehdä haluamani kansion ja tiedostot nettisivua varten. Loin kansioon ”public_html” nimisen kansion, jonka sisään loin vielä ”index.html” nimisen tiedoston. Kyseiseen tiedostoon kopioin lyhyen html5-pohjan osoitteesta: http://terokarvinen.com/2012/short-html5-page, jonka jälkeen tein pohjaan vielä haluamani muutokset. Tallensin muutokset ja päivitin selaimen välilehden, jossa 403 error aikaisemmin oli. Voilà!
b) Surffaa oman palvelimesi weppisivuja. Etsi Apachen lokista esimerkki onnistuneesta (200 ok) sivulatauksesta ja epäonnistuneesta (esim 404 not found) sivulatauksesta. Analysoi rivit.
Siirryin takaisin root-kansioon, josta komennolla ”cd /var/log/apache2” pääsin kansioon, jossa Apachen lokitiedostot olivat. Tarkastelin ensin access.logia komennolla ”tail access.log”, jolloin sain kymmenen viimeisintä tapahtumaa lokitiedostosta. Analysoin viimeisimpää riviä. locahost IP-osoite rivin alussa kertoo pyynnön lähteen, tämän jälkeen seuraa timestamp hakasuluissa. ”GET” todennäköisesti merkitsee pyyntöä ja sen seuraama /~xubuntu/ pyynnön kohdetta. HTTP/1.1 määrittää kyseisen protokollan olevan käytössä. Luku 200 kuvaa onnistunutta toimintoa ja luku 507 vastauksen kokoa tavuissa (mikäli muistin oikein…). Loppuosa rivistä kertoo tietoja pyynnön tehneen laitteen selaimesta ja käyttöjärjestelmästä.
Seuraavaksi analysoin epäonnistunutta sivulatausta error.log-tiedostosta. Viimeisimmällä sivulla on mitä todennäköisimmin aikaisempi 403 Forbidden virhe. Jälleen kerran aluksi rivillä on tapahtuman timestamp. Seuraavissa kaksissa hakasuluissa on todennäköisesti virheen tyyppi ja sen tunnistuskoodeja (en jäänyt selvittämään tätä kohtaa ajan takia sen tarkemmin). Tämän jälkeen tulevissa hakasuluissa kerrotaan virheen tuottaneen clientin IP-osoite. Tämän jälkeen seuraa vielä yksi virhekoodi ”AHO1630”, ja plaintextillä virheen syy (joka tässä kontekstissa tarkoittaa todennäköisimmin sitä, että verkkosivun tiedostoja ei löytynyt halutusta/haetusta sijainnista).
d) Tee virhe johonkin Apachen asetustiedostoon, etsi ja analysoi tuo rivi. Etsimiseen sopivat esimerkiksi Apachen omat lokit, syslog sekä ‘apache2ctl configtest’.
Navigoin itseni sijaintiin, josta Apachen asetustiedostot löytyvät komennolla ”cd /etc/apache2”, josta siirryin vielä ”mods-available/” kansioon. Täällä tein muutoksen userdir.conf-tiedostoon komennolla ”sudoedit userdir.conf” ja lisäsin tiedostoon tekstin ”ASDASDASD”.
Tämän jälkeen ajoin komennon ”apache2ctl configtest”, joka palautti virheellisen asetustiedoston sijainnin ja ongelmakohdan plaintextinä.
Tämän jälkeen korjasin tiedoston ennalleen ja ajoin configtestin uudestaan, jolloin sain vastauksen ”Syntax OK”.
Tauko 19:40-20:00
i) Kuinka monta eri HTTP Status:ta (200, 404, 500…) saat aiheutettua lokeihin? Selitä, miten aiheutit tilanteet ja analysoi yksi rivi kustakin statuksesta.
Sain aikaisemmissa tehtävissä aiheutettua lokeihin ja analysoitua jo statukset 403 sekä 200. Kirjoittamalla väärän osoitteen (esim. localhost/~xubuntuu/ (yksi u-kirjain liikaa)) sain aiheutettua statuksen 404 Not found. access.log-tiedostossa statuksen rivi näyttää miltei identtiseltä aikaisempien statuksien kanssa, mutta status-koodin tilalla on 404 ja vastauksen koko on myös eri suuruinen.
m) Vaihda Apachen oletussivu. Eli laita palvelimen etusivulla (ilman tildeä) näkyvä sivu niin, että alkuperäinen on jonkun käyttäjän kotihakemistossa ja voit muokata sitä ilman pääkäyttäjän oikeuksia.
Navigoin itseni jälleen kansioon, jossa Apachen asetustiedostot sijaitsevat komennolla ”cd etc/apache2/”, josta siirryin vielä kansioon ”sites-available/”. Loin tänne uuden .conf-tiedoston sudoedit-komennolla, johon kirjoitin kuvassa näkyvän sisällön.
Tämän jälkeen laitoin vielä uuden .conf-tiedoston päälle komennolla ”sudo a2ensite testih3.com.conf” ja otin samalla default-sivun .conf-tiedoston pois komennolla ”sudo a2dissite 000-default.conf”. Tämän jälkeen käynnistin Apache-demonin vielä uudelleen komennolla ”sudo systemctl reload apache2”, jonka jälkeen käyttäjän sivu näkyi pelkällä ”localhost”-osoitteella.
n) Laita kaksi nimeä samaan IP-osoitteeseen. Voit simuloida nimipalvelun toimintaa /etc/hosts -tiedoston avulla. Eli niin, että samalla palvelimella osoitteella teronlenkkisivu.com tulee eri sisältö kuin osoitteella opipentest.com.
Aloitin luomalla toisen kansion ”SiteKakkonen” /home/xubuntu sijaintiin, jonka sisälle loin myös uuden index.html-tiedoston. Tämän jälkeen loin Apachen sites-available kansioon toisen .conf-tiedoston, johon kirjoitin kuvan mukaisen sisällön.
Tämän jälkeen laitoin .conf tiedoston päälle komennolla ”sudo a2ensite sitekakkonen.com.conf”. Käynnistin Apache-demonin uudestaan, jotta muutokset tulisivat voimaan. Tämän jälkeen lisäsin /etc/hosts -tiedostoon kuvan mukaiset IP-osoitteet ja domainit.
Jolloin sain molemmat sivut näkymään omien domainiensa alla.
Tehtävä suoritettu 6.2.2020 klo. 21:20
Muokkaukset:
23.3.2020, Lisätty laitteen tiedot, jolla tehtävä on suoritettu. Muokattu tekstin ulkoasua siistimmäksi.
Terminaali, komennot ja lokitietojen tarkkaileminen
Tehtävän suorittaminen aloitettu 31.1.2020 klo. 16:00.
Laitteen tiedot, jolla tehtävä suoritettiin:
CPU: Intel i5-4670k
GPU: Nvidia GTX 1060 6 Gt VRAM
RAM: 16 Gt DDR3
Kingston DataTraveler G4 16 Gt, jossa Xubuntu 18.04.03
a) Aiheuta lokiin kaksi eri tapahtumaa: yksi esimerkki onnistuneesta ja yksi esimerkki epäonnistuneesta tai kielletystä toimenpiteestä. Analysoi rivit yksityiskohtaisesti.
Aloitin avaamalla terminaalin ja kirjoittamalla ”cd /var/log”-komennon joka siirsi minut kansioon jossa log-tiedostot sijaitsevat. Komennolla ”ls” pystyin tarkastelemaan kansion sisältöä.
Tiesin tunnilla käydyn opetuksen perusteella hakemieni lokitiedostojen sijaitsevan ”syslog”-tiedostossa. Annoin terminaalissa komennon ”tail -f /var/log/syslog”, jolloin pystyin jatkuvasti seuraamaan syslog-tiedoston kymmentä viimeisintä riviä/tapahtumaa.
Tämän jälkeen aiheutin lokeihin onnistuneen toimenpiteen katkaisemalla ja yhdistämällä uudelleen verkkoyhteyden koneeseeni. Josta seurasi seuraavanlaisia lokitietoja.
Kielletyn toimenpiteen sain aiheutettua asentamalla ssh:n komennoilla ”sudo apt-get update” ja ”sudo apt-get install ssh”. Tämän jälkeen selvitin käyttäjänimeni komennolla ”whoami” ja IP-osoitteen ”hostname -I”. Seuraavaksi yritin yhdistää tietokoneeseeni ssh:n kautta väärällä käyttäjänimellä ja salasanalla komennolla ”ssh microsoft@192.168.0.17”, jonka jälkeen terminaali syötin terminaaliin muutaman kerran satunnaisen salasanan ja sainkin lopuksi vastauksen ”microsoft@192.168.0.17: Permission denied (publickey,password)“. Auth.log-tiedostosta näkyy käyttäjänimen ”microsoft” olevan väärin ja sen, että salasana on syötetty moneen otteeseen väärin ennen kuin yhteydenottoyritys on suljettu.
b) Vapaaehtoinen kohta, ei ole opetettu vielä: Asenna SSH-demoni. Kokeile omalla ssh-palvelimellasi jotain seuraavista: ssh-copy-id, sshfs, scp tai git. (Helpoin lienee scp: ‘scp foo.txt tero@example.com:’)
Yritin ottaa yhteyttä koneeseeni tällä kertaa oikealla käyttäjänimellä ”ssh xubuntu@192.168.0.17”, jonka jälkeen terminaali pyysi minua syöttämään salasanan. Tässä vaiheessa tajusin, että joutuisin määrittämään koneelleni salasanan, jotta voin ottaa siihen etäyhteyden. Määrittelinkin koneelle salasanan komennolla ”sudo passwd xubuntu” ja syöttäen tämän jälkeen haluamani salasanan terminaaliin. Tämän jälkeen loin ”Documents” -kansioon testi.txt -tiedoston, jonka sitten kopioisin scp-komennolla. Otin ssh yhteyden koneeseeni ja navigoin itseni kansioon, jossa tekstitiedosto oli komennolla ”cd Documents”. Tämän jälkeen kopioin testi.txt tiedoston komennolla ”scp testi.txt xubuntu@192.168.0.17”, joka loi kopion tekstitiedostosta nimellä ”xubuntu@192.168.0.17”.
!TARKENNUS 17.3.2020! Myöhemmin selvisi, että oikea tapa tehdä tiedoston siirto paikalliselta koneelta scp-komennolla olisi ollu muotoa “scp testi.txt xubuntu@192.168.0.17:testi.txt
c) Tee unelmien apt-get -komento: yksi komentorivi, joka asentaa suosikkiohjelmasi.
Tein uuden tekstitiedoston nimellä skripti.sh, johon kirjoitin tarvittavat komennot Kritan ja Spotifyn asentamiseksi.
Tämän jälkeen ajoin tiedoston komennolla ”sh skripti.sh”. Tässä vaiheessa huomasin unohtaneeni -y lisäykset komennoista, jonka takia jouduin muutamaan otteeseen vastaamaan ”y” ohjelman ajamisen aikana. Muuten ohjelma toimi moitteettomasti ja sai asennettua Kritan sekä Spotifyn koneelle.
d) Asenna komentokehotteen paketinhallinnasta kolme itsellesi uutta komentorivillä toimivaa ohjelmaa. Kokeile kutakin ohjelmaa sen pääasiallisessa käyttötarkoituksessa.
Etsin mahdollisia sovelluksia terminaalin kautta komennolla ”apt-cache search *hakusana*”. Ensimmäiseksi latasin ”nettoe”-nimisen ristinolla-pelin. Pelasin yhden pelin tietokonetta vastaan ja peli meni tasan.
Toiseksi latasin ”qalc”-nimisen laskinohjelman, joka muutamasta laskutoimituksesta päätellen toimii.
Kolmanneksi latasin ”rolldice”-nimisen ohjelman, joka palautti luvun 1-6 jokaisella Enter-näppäimen painalluksella.
Tehtävä suoritettu 31.1.2020 klo. 19:00.
Muokkaukset:
17.3.2020, Tarkennus virheelliseen vastaukseen. 23.3.2020, Lisätty laitteen tiedot, jolla tehtävä on suoritettu. Muokattu tekstin ulkoasua siistimmäksi.
Tehtävän suorittaminen aloitettu 24.1.2020 klo. 22.00
Laitteen tiedot, jolla tehtävä suoritettiin:
CPU: Intel i5-4670k
GPU: Nvidia GTX 1060 6 Gt VRAM
RAM: 16 Gt DDR3
Kingston DataTraveler G4 16 Gt, jossa Xubuntu 18.04.03
a) Tee oma Linux-livetikku. Kokeile sitä jossain muussa kuin koulun koneessa.Tämä kohta ei edellytä asentamista – jos kuitenkin asennat, ota ensin varmuuskopiot. Jos ehdit tehdä tikun jo tunnilla, voit poikkeuksellisesti raportoida muistin perusteella jälkikäteen, mutta muista silloin mainita muistinvaraisuudesta.
Livetikun luonti
Loin Linux live tikun Xubuntu 18.04.03 versiosta käyttäen Rufus-työkalua. Asennus tapahtui 16GB Kingston DataTraveler G4 -muistitikulle.
Latasin Xubuntu 18.04.03 ISO-tiedoston suoraan Xubuntun sivuilta. En ladannut tiedostoa torrenttina, sillä minulla ei ollut tähän mahdollisuutta tehtävän teon aikana. Käynnistin Rufuksen ja valitsin muistitikun asennuksen määränpääksi. Tämän jälkeen raahasin ISO-tiedoston Rufukseen, jätin muut asetukset oletuksiksi ja aloitin livetikun luonnin.
Boottaaminen, ensiaskeleet ja ongelmat
Asetin muistitikun Surface Laptop -läppärin porttiin ja käynnistin koneen samalla pitäen pohjassa volume up/f6 -näppäintä. Pääsin laitteen biossiin ja sain sen boottaamaan livetikulta pyyhkäisemällä vasemmalle tikun kuvakkeen kohdalla (erikoinen ratkaisu, mutta toimi). Tämän jälkeen pääsin Xubuntun työpöydälle, mutta törmäsin heti ongelmaan. Laitteen näppäimistö ei toiminut ollenkaan. Etsin tähän ratkaisua ja löysinkin muutaman vuoden vanhan postauksen reddit.comista, jossa toisellakin käyttäjällä oli ollut sama ongelma. Postauksen yhteydestä löysin myös mahdollisen ratkaisun ongelmaan mukautetun kernelin muodossa. Tässä vaiheessa siirryin läppäriltäni pöytäkoneelleni aikomuksenani asentaa tarvittavat tiedostot, jotta pystyisin käyttää livetikkua normaalisti myös Surface Laptop -laitteeltani. En kuitenkaan jostain syystä onnistunut suorittamaan annetun ohjeiden ensimmäistä komentoa “sudo apt install git curl wget sed” onnistuneesti.
Päätinkin tämän takia miettiä laitteen ongelmaa myöhemmin ja keskityin tehtävän suorittamiseen pöytäkoneellani, jossa näppäimistö toimi (Jouduin kuitenkin vaihtamaan layoutin Uk-layoutista suomalaiseksi Setting>Keyboard>Layout).
Lopetin tehtävän suorittamisen 25.1.2010 klo. 00.30 ja jatkoin suorittamista 25.1.2020 15:30
Jatkoin tehtävän suorittamista tällä kertaa suoraan pöytäkoneellani. Asetin livetikun USB-porttiin ja käynnistin koneen samalla painaen Del-näppäintä, jolloin pääsin koneen BIOSsiin. Täältä valitsin bootattavaksi asemaksi livetikun, jonka jälkeen kone käynnistyi Xubuntun työpöydälle. Jouduin myös vaihtamaan näppäimistön layoutin uudestaan. Painamalla Windows-key + T sain terminaalin avautumaan. Layoutin vaihtamalla ja terminaalin avauksella varmistuin Näytön, näppäimistön ja hiiren toiminnasta.
b) Listaa testaamasi koneen rauta (‘sudo lshw -short -sanitize’).
Avasin terminaalin painamalla Windows-key + T ja kirjoitin annetun komennon “sudo lshw -short -sanitize”. Tämä listasi koneen raudan ja siihen liitetyt laitteet terminaaliin.
Otin terminaalista screenshotit hakemalla valikosta “screenshot” ja tallensin kuvat työpöydälle. Yhdistin itseni verkkoon avaamalla verkkoyhteyksien valikon ylhäältä oikealta työpöydällä (nuoli ylös- ja alaspäin). Tämän jälkeen klikkasin “Wired connection 1” hiiren oikealla painikkeella, joka yhdisti minut verkkoon. Avasin verkkoselaimen ja latasin screenshotit imgur.com -sivustolle, josta pystyin ladata ja liittää ne raporttiini.
c) Asenna kolme itsellesi uutta ohjelmaa. Kokeile kutakin ohjelmaa sen pääasiallisessa käyttötarkoituksessa.
Asensin ensimmäiseksi Krita-ohjelman seuraamalla löytämiäni ohjeita.
Ajoin ohjeen mukaan seuraavat komennot terminaalissa
sudo add-apt-repository ppa:kritalime/ppa
sudo apt-get update
sudo apt-get install krita
, jonka jälkeen etsin ja käynnistin ohjelman valikosta.
Seuraavaksi halusin kokeilla valmiiksi asennettua Software-sovellusta ja asensin sovelluksen kautta Telegram-sovelluksen, joka käynnistyikin moitteettomasti.
Kolmanneksi asensin Spotifyn, johon löysin ohjeet hakemalla spotifyn asennusohjeita selaimella.
Ajamalla seuraavat komennot terminaalissa onnistuin asentamaan Spotifyn:
sudo apt install snapd
sudo snap install spotify
Kirjauduin sisään sovellukseen ja kuuntelin onnistuneesti kappaleita, josta pystyin myös toteamaan audioraudan ja -ohjaimien toimivuuden.
d) Mitä lisenssiä kukin näistä ohjelmista käyttää? Selitä lyhyesti, mitä oikeuksia ja velvollisuuksia tuosta lisenssistä seuraa.
Krita: GPL-lisenssi
Oikeudet: Luoda tiedostoja missä tahansa käyttötarkoituksessa, Käyttää sovellusta missä tahansa käyttötarkoituksessa, Muokata ja levittää sovellusta
Velvollisuudet: Jakaa muokatun sovelluksen lähdekoodi
Telegram: Client-side lähdekoodi GPL-lisenssi, Server-side lähdekoodi yksityinen
Client-side:
Oikeudet: Luoda tiedostoja missä tahansa käyttötarkoituksessa, Käyttää sovellusta missä tahansa käyttötarkoituksessa, Muokata ja levittää sovellusta
Velvollisuudet: Jakaa muokatun sovelluksen lähdekoodi
Server-side:
Oikeudet ja velvollisuudet ovat merkitty käyttöoikeussopimukseen, joka on hyväksyttävä saadakseen käyttöoikeuden sovellukseen.
Spotify:
Spotify ja sen sisältö, spotifyn tai lisenssinantajien omaisuutta, Käyttäjille, jotka eivät maksa saavat mainoksia palveluunsa, palveluun voi ladata omaa sisältöä (kaikki sisällöstä aiheutuvat ongelmat, kulut jne. ovat käyttäjän vastuulla), Palvelussa ikärajoja riippuen sijainnista.
e) Listaa käyttämäsi ohjelmat (esim. MS Word), kunkin ohjelman käyttötarkoitus (esim. Tekstinkäsittely) ja vastaava vapaa Linux-ohjelma (esim. LibreOffice Writer). Jos johonkin tarkoitukseen ei löydy vapaata Linux-ohjelmaa, listaa sekin. (Päivitetty: korjasin tämän kohdan tunnuskirjaimen d->e)
Tekstinkäsittely: Microsoft Office -> Libre Office
Kuvankäsittely: Adobe Photoshop -> GIMP
Piirtäminen: Paint Tool SAI -> Krita
Sovelluksia joista myös linux-versio: Steam (Pelaaminen), Discord (Kommunikaatio/VoIP), Spotify (Musiikki)
Tehtävä suoritettu 25.1.2020 klo. 19.00
Muokkaukset: 23.3.2020, Lisätty laitteen tiedot, jolla tehtävä on suoritettu. Muokattu tekstin ulkoasua siistimmäksi.