Maalisuora

Sysadmin stuff

Ohjelmointi

Python on ohjelmointikieli, jolle on tunnusomaista hyvä luettavuus, korkea abstraktiotaso ja kehittyneet kirjastot monilla eri sovellusalueilla. Python on niin kutsuttu tulkattu kieli, mikä tarkoittaa että sen suorituskyky on alhaisempi kuin käännetyn kielen.” [1]

Java on Java (ohjelmointikieli) on yleiskäyttöinen ohjelmointikieli, jonka avulla ohjelmoijat voivat kirjoittaa koodia, joka kääntäessä toimii kaikilla Javaa tukevilla alustoilla ilman tarvetta kääntää koodia uudelleen.” [2]

C on yleiskäyttöinen, imperatiivinen ja rakenteinen käännettävä tietokoneiden ohjelmointikieli.” [3]

Laitteisto

a) Kirjoita ja aja “Hei maailma” kolmella kielellä. su 6.10.2024

tämä osio klo 18:20 - 19:00

Javan lataus:

sudo apt-get install default-jre
sudo apt-get install default-jdk

Hyödynsin opettajan sivuilla olevia ohjeita.

Ensin Java kielellä

kello 18 38 30_javaCode

Testi:

18 39 18_helloWorldJavalla

Sitten C:llä

18 44 59_cCode

Testi:

18 50 26_helloWorldClla

C kieli oli täysin vieras kieli minulle, hieman kompuroin ennenkuin sain tervehdyksen toimimaan. Tiedoston nimessä oli häikkää. Vaihdoin tiedostonnimen mv-komennolla.

Viimeiseksi Pythonilla

19 01 19_pythonCode

Pythonissa kirjoitin koodin niin, että ohjelma kysyy käyttäjältä vaihtoehtoja 1 tai 2. Käyttäjän valinnan jälkeen ohjelma tervehtii joko 1: suomeksi tai 2: englanniksi, jos käyttäjä syöttää mitään muuta, ohjelma pyytää valitsemaan kummallakin kielellä joko 1 tai 2, ja lopettaa ohjelman.

Päivitetty 7.10 klo 16.29 - Python koodin selitystä. Rinnakkaisarvioija huomasi arvioidessaan raporttiani.

Testi:

19 01 58_HelloWorldPythonilla

[4]

b) Laita Linuxiin uusi komento niin, että kaikki käyttäjät voivat ajaa sitä.

Tämä osio klo 19:30 - 20:30

Testiä varten tein uuden käyttäjän galileo. Tämä käyttäjä ei kuulunut sudo ryhmään eikä adm ryhmään.

18 21 08_listUsers

Käytin apuna opettajan sekä kurssin käyneen opiskelijan materiaaleja. [5][6]

Ensiksi tein muutoksen tekemääni .py tiedostoon, lisäämällä alkuun #!/urs/bin/python3. Näin terminaali voi tulkita koodipätkän komennoksi.

19 04 04_pythonKomennoksi

Ensin muutin tiedoston bash komennoksi hei.py -> hei.sh

Lisäsin tiedostoon ajo-oikeudet kaikille käyttäjille chmod +x hei.sh, testasin ./hei.sh

19 05 58_komentoPython

Tämän jälkeen kopioin sen pääkäyttäjänä kansioon /usr/local/bin/, unohdin että pitää sudottaa.

19 25 57_bashKomennoksi

Kirjauduin ulos leonardo-käyttäjänä, ja kirjauduin testiä varten tekemääni galileo-käyttäjänä.

Testi: galileo

19 30 46_kokeilua

Testi: immanuel

20 30 30_kokeilua_immanuel

Komento hei.sh toimii nyt eri käyttäjillä.

c) Ratkaise vanha arvioitava laboratorioharjoitus soveltuvin osin.

Rinnakkaisarvioinnissa huomasin että tässä tehtävässä tein vain yhden tehtävän, harjoituksen kokonaisuudesta. Päätin että jatkan labraharjoituksia, ja lisään ne raporttiini ennen tehtävän deadlinea.

Laboratorioharjoitus Final Lab for Linux Palvelimet 2024 Spring

Tämä osio 20:30 - 21.20

Teen harjoituksen käyttäjänä leonardo, ja testaan sitä käyttäjällä immanuel

Valitsin edellisen toteutuksen labraharjoituksen osan:

c) Ei kolmea sekoseiskaa

Suojaa raportti Linux-oikeuksilla niin, että vain oma käyttäjäsi pystyy katselemaan raporttia

Tein tiedoston salaista.txt, ja kirjoitin sisältöä siihen.

Tämän jälkeen muutin tiedoston oikeuksia chmod 600 salaista.txt, joka antaa käyttäjälle leonardo oikeudet lukea ja kirjoittaa mutta ei ajaa(execute). Muille käyttäjille ei ole oikeuksia lainkaan.

20 50 39_salaiseksi

Kokeilin, immanuel-käyttäjänä tarkistella leonardo:n kansiota

Näyttökuva 2024-10-6 kello 21 08 25

Kokeilin päästä leonardo-käyttäjän kansioon, ja järjestelmä ilmoitti että ei ollut siihen oikeuksia. Vaihdoin käyttäjän leonardo-kansion oikeuksia niin, että muilla käyttäjillä on vain luku oikeus, kun taas leonardo-käyttäjällä on täydet oikeudet.

Komento on chmod 744 /home/leonardo

Tarkistin tiedoston ja kansion oikeudet komennolla ls -l

21 03 39_oikeudet

Seuraavaksi kirjauduin käyttäjällä immanuel ja kokeilin päästä käsiksi tiedostoon.

Näyttökuva 2024-10-6 kello 21 16 56

Järjestelmä antoi vastaukseksi permission denied kun yritin avata immanuel-käyttäjällä leonardo-käyttäjän tiedostoa. Katsoin vielä leonardo-käyttäjän kansiota, johon muillakin oli lukuoikeus, järjestelmä kertoi vielä että tiedostoihin ja kansioihin ei ole pääsyä.

[7]

Seuraavat on suoritettu SSH- yhteyttä käyttäen. Mac tietokoneelta SSH-yhteydellä virtuaalipalvelimen Debian käyttöjärjestelmään

d) ‘howdy’

Tässä tehtävässä hyödynsin omaa raporttiani samanlaisesta tehtävästä. Päivitetty 7.10 klo 16:30. Linkki ohjasi väärään sivuun. Rinnakkaisarvioijan palautteen jälkeen

Päätin tehdä howdy-nimisen Python-komennon, joka käyttää Caesarin salakirjoitusmenetelmää. [8]

0 49 45_howdyKOMENTO

Tein tarvittavat toimet. chmod a+x howdy, joka antoi oikeuden kaikille ajaa komennon. sudo cp howdy /usr/local/bin, joka kopioi komennon kansioon, jotta kaikki voivat ajaa komentoa.

Ohjelma kysyy ensin salataanko vai puretaanko viestiä, pyytää viestin, pyytää kuinka monta siirtoa tehdään. Tämän jälkeen ohjelma tulostaa joko salatun tai puretun viestin.

0 46 14_howdyKomento

Komento toimii, komento salaa viestin Ceaserin salakirjoitusmenetelmällä.

0 51 11_howdyKaytto

e) Etusivu uusiksi

g) Salattua hallintaa

Tässä tehtässä käytin raporttiani SSH- kirjautumisesta.

Asensin ssh-palvelimen

sudo apt install openssh-client
sudo apt install openssh-server

Luon avain turvallisen 4 kilotavuisen avainparin:

ssh-keygen -b 4096 -t rsa

Tämä loi .ssh kansion käyttäjälle, jossa ovat avainparit, id_rsa sekä id_rsa.pub. id_rsa.pub sisältää julkisen avaimen jota voi jakaa, id_rsa on pidettävä aina salassa.

Teen uuden käyttäjän virtuaalikoneelle ja automatisoin kirjautumisen koneeltani.

Uusi käyttäjä albert

Näyttökuva 2024-10-7 kello 2 44 36

Kopioin .pub tiedoston koneeltani, uudelle käyttäjälle.

ssh-copy-id albert@146.190.237.216

Näyttökuva 2024-10-7 kello 2 47 06

Lopetan 7.10.24 klo 2:45, palaan myöhemmin tekemään loput tehtävät

[10]

Lähteet

  1. https://fi.wikipedia.org/wiki/Python_(ohjelmointikieli)
  2. https://fi.wikipedia.org/wiki/Java
  3. https://fi.wikipedia.org/wiki/C_(ohjelmointikieli)
  4. https://terokarvinen.com/2018/hello-python3-bash-c-c-go-lua-ruby-java-programming-languages-on-ubuntu-18-04/
  5. https://terokarvinen.com/2007/12/04/shell-scripting-4/
  6. https://github.com/jerebjo/Linuxi/blob/main/h7.md
  7. https://www.linode.com/docs/guides/modify-file-permissions-with-chmod/
  8. https://fi.wikipedia.org/wiki/Caesarin_salakirjoitus
  9. https://terokarvinen.com/linux-palvelimet/
  10. https://terokarvinen.com/2024/arvioitava-laboratorioharjoitus-2024-linux-palvelimet/