Teen paljon töitä ristiin Windowsin ja Ubuntun välillä – Ubuntu siis merkityksessä Raspberry Pi SSH:n yli. Siksi tarvitsen nopean tavan päästä molemmista järjestelmistä molemmissa luotuihin tiedostoihin kiinni. Yksi tapa olisi tehdä Raspberrystä keskitetympi tiedostoserveri. Mutta välillä todellakin tarvitsen helppoutta ja nopeutta. Sen saan aikaiseksi kun sovellan nimenomaan Windowsille kehitettyä tapaa päästä jaettuihin kansioihin kiinni: SMB tai Samba, sama asia.
Aidosti kyse ei ole mistään muusta kuin Windowsin kansion mounttaamisesta Ubuntuun hakemistoksi. Täysin samaa perusasiaa kuin USB-muistin mounttaaminen tai miten päästään käsiksi verkkolevyyn eli NAS:iin. Käytännön toteutus ei vaadi muuta poikkeavaa kuin parin paketin asentamista,.
Esittämäni tapa on sopiva yksityisiin verkkoihin ja kun Raspberryssä ei ole turhia käyttäjiä. Aidostihan tämä ei ole mitenkään Raspberry Pi sidonnaista tai, tarvittavien pakettin asennustapaa lukuunottamatta, edes Ubuntuasiaa. Asiat tehtäneen kaikissa linux-jakeluissa aivan samalla tavalla.
Mutta koska haluan nimenomaan Raspberryn saavan yhteyden samassa sisäverkossa olevaan omaan Windows-koneeseen ja koska Raspberryä pyörittää Ubuntu 20.04 serveriasennus, niin artikkelin kategoria on Raspberry ja linux on Ubuntu. Ei siinä sen kummallisempaa ole.
Tästä lähdetään liikkeelle
Yksinkertaisin tapa olisi tietysti hyödyntää Windowsin omaa SSH-serveriä ja kirjautua siellä sitten WSL:n avustamana Ubuntuun. Mutta tuo on eri asia kuin työskennellä paikallisesti muun järjestelmän tiedostojen kanssa. Mutta asiaa kannattaa kuitenkin miettiä, koska tarve määrää työkalut.
Minä tarvitsen määrättyihin asioihin linuxin työkaluja. Jo pelkästään rsync
on sellainen, jolle Windowsin resurssinhallinnassa ei ole olemassa kilpailijaa. Lisäksi tarvitsen aika ajoin yhteyden Amazonin S3-pilveen tehokkaammin kuin mitä selainliittymä mahdollistaa. Massamuokkauksissa niin kuvan kuin videonkin suhteen mikään ei pärjää linuxin komentoriville. On muitakin tarpeita.
Minä teen suurimman osan työstäni Windowsissa. Jokaisella on omat mielipiteensä ja mieltymyksensä, mutta varsinaisessa työssä minulle ei ole ollut yhdestäkään linux-jakeluiden työpöydästä iloa. Mac saattaisi onnistuakin, mutta se ei anna vastinetta hinnalleen.
Sen sijaan apuohjelmien käytössä linux on täysin ylivertainen. Ja kun tarvitaan servereitä, niin järkevää kilpailijaa pingviinille ei todellakaan ole – ainakaan minun hintaluokassani. Koirilla tunnetaan sellainen käsite kuin 50/50-ruokinta. Siinä hyödynnetään näennäisesti kahden täysin erilaisen ruokintatavan, kuivamuonan ja lihapohjaisen ruokinnan, hyvät puolet kummastakin. Toteutan samaa ajattelua tietokoneissakin, otetaan jokaisesta edut käyttöön.
Suurimman osan linux-tarpeistani saan toteutettua Windowsissa Ubuntu-appissa. Se on periaatteessa aivan täysiverinen Ubuntu. Ongelmaa tulee aika ajoin siinä, että se ei kuitenkaan ihan ole, koska se toimii eräänlaisessa virtuaaliboksissa. Silloin toimivuus on riippuvainen siitä, että Ubuntu-app on ylipäätään käynnissä tai mitä Windows sallii sille. Toisaalta, eroa Raspberryyn ei suuremmin ole. Ei senkään Ubuntusta paljoa hyötyä ole, jos saippuakotelo ei saa sähköä ja hurise (Raspberry ei muuten pahemmin hurise, koska siinä ei ole liikkuvia osia).
On myös joitain henkilökohtaisia omituisuuksiani, jotka hidastavat Ubuntu-appin käyttöäni, kuten että Windowsin hakemistomuodon antaminen linuxissa ei ole se joustavin temppu. Yksi syy siihen, miksi joskus on tarve tehdä niinkin hassu mutka kuin kirjautua SSH:lla Windowsista Raspberryyn, että pääsee käsiksi hakemistoon, joka haetaan Samballa siitä samasta Windowskoneesta.
Aidosti minun ei nimenomaisesti tuota ole tarvinnut tehdä. Useimmiten kyse on kahdesta tilanteesta:
- teen töitä jo valmiiksi Raspberryn konsolilla ja tulee tarve päästä Windowsin tiedostoihin käsiksi asiassa, jossa tarvitsen linuxia
- olen muualla iPadin kanssa, ja tulee tarve päästä Windowsin tiedostoihin käsiksi (varsinkin tässä elämä helpottuu huomattavasti)
Koska teen pääsääntöisesti töitä OneDriveen synkatun hakemiston kanssa, niin kytken sen yhteen Raspberryn kanssa. OneDrive on hankala pilvipalvelu linuxeissa, sillä Microsoft ei ole tukenut niitä. Kaikki yhteydet on tehtävä kolmannen osapuolen viritysten kautta, joista osa on kaupallisia. Lisäksi ne ovat hankalia käyttää, ainakin minusta.
Nyt kun jaan Samballa Windowsiin synkatun OneDriven kansion, niin saan muutokseni samantien myös takaisin pilveen. Sama tekniikkahan toimii kaikilla muillakin pilvikansioilla ja yksi sovellus on mountata Google Drive, jolloin rsync ajaa sitä kautta Raspberryn backupit turvaan. Rajoitukset ovat kylläkin selvät: Windowsin on oltava käynnissä ja kansio oltava pilvestä synkattu paikalliseksi.
Ohjeethan eivät sinänsä piittaa minkä kansion mounttaa Raspberrylle hakemistoksi. Kaikki menee samalla tavalla.
Windowsin jako
Windowsissa täytyy olla ainakin sen kansion jako päällä, joka mountataan Raspberryyn. Tai siis Ubuntuun. Oikeammin ihan mihin tahansa linuxiin. Minun ei kylläkään ole tarvinnut tarvinnut muuttaa yhtään mitään, koska jako on aina ollut päällä. Saattaa olla vanhojen Windowsin omien perhejakojen aikaisia säätöjä.
Mutta jos jakoa ei ole, niin se täytyy laittaa päälle, myös omalle tunnukselle. Ja jos haluat jakaa kansion jollekin muulle, niin hänet täytyy erikseen sallia. Tässä on kylläkin koukku. Pystyt antamaan käyttöoikeuden ainoastaan jollekin toiselle paikalliselle tilille ja yleensähän sellaista ei ole kotikäytössä. Servereillä kylläkin. Mutta anteeksi vaan – minun henkilökohtainen läppärini ei ole serveri, johon muut kirjautuvat tekemään asioitaan. Käyttäkööt omaansa.
Uusi käyttäjä, jolla olisi käyttöoikeudet voidaan luoda, mutta se luo paikallisen käyttäjän, eikä se ole tarkoituksenmukaista. Ymmärrän ajatuksen, joka perustuu oletukselle, että käyttöoikeutta käytetään paikallisesti. Mutta oikeasti – ei sitä ole koskaan Windowseissa noin toteutettu ja siksi aikoinaan perhejako rakennettiin. Se salli etänä resurssien jakamisen. Siis ajatukseltaan tismalleen samaa kuin mitä nyt ollaan rakentamassa.
Toki pääsyoikeus voidaan myöntää myös kaikille, mutta minulla on siihen syvä vastahanka. Eihän sillä ole suurtakaan merkitystä kotiverkossa, jos tarkoitus nimenomaan on jakaa pääsy muille vaikka valokuvat-kansioon, sillä lopputulos on sama. Minun läppärini seilaa myös ulkona kotiverkosta ja vaikka pitäisi luottaa siihen, että käyttäjähallinta taatusti estää muiden kirjautumisen, niin silti en luota.
Tiedän, minulla ei ole tähän järkiperäistä suhtautumista. Jotta muualla maailmassa joku pääsi jaettuun kansioon käsiksi, niin hänen pitäisi pystyä kirjautumaan Windowsiin, eikä se onnistu. Luotan kirjautumisten vahvaan voimaan kaikkialla muualla, mutta en juuri Windows 10 tapauksessa. Johtuu hyvin pitkälle siitä, että jonkun linuxin kohdalla minulla on vakaa uskomus. että hallitsen liikkumista maailmalta serverille. Tiedän mitä on käynnissä ja mitkä portit ovat auki. Windowsissa en tiedä ja minun pitäisi vaan luottaa Defenderiin ja Avastiin, koska ne sanovat niin.
Minä oikaisin, koska se onnistuu kotiverkossa kotikoneella. Käytän omaan tietokoneeseen kohdistuvissa mounteissa omia henkilökohtaisia Windowsin kirjautumistunnuksiani. Muut pääsevät käsiksi vain automountattuihin, joilloin käytetty tunnuspari löytyy rootin kotikansiosta. Olisin toki voinut tehdä perheenjäsenille tunnukset läppärilleni, mutta en vaan jaksa niitä profiilikyselyjä kirjautumisessa.
Kyse on vain parista kansiosta, joita on aiemminkin käytetty perheen sisäisisä jaoissa – tosin tuo alkaa nyt olla katoavaa kansanperinnettä. Meillä on NAS koneiden väliseen siirtoon, jos ei halua tehdä asioita SSH:n kautta vaikka rsyncillä.
Tehdään kuitenkin nyt jako omalle itselle omaan käyttöön.
- Tarkista kansion jako avaamalla resurssinhallinta ja klikkaa haluamaasi kansiota oikealla hiiren korvalla. Valitse valikosta Ominaisuudet. Klikkaa välilehteä Jakaminen.
- Jos ylhäällä kansion jakamisen alla lukee Jaettu, niin kaikki on hyvin ja voit poistua. Jos ei ole, niin klikkaa Jaa…, valitse oma tunnuksesi ja klikkaa painonappulaa Jaa.
- Ota samantien talteen polku. Se on kuvassa maalattuna. Tarvitset sitä mounttaamisessa.
Windows-kansion mounttaaminen Ubuntuun
Aivan ensimmäiseksi kannattaa siirtyä rootin bashiin. Aivan jokainen asia vaatii sudoa, ja sen naputtaminen kerta toisensa jälkeen on vaan… turhaa.
sudo -s
- Kun urakka on valmis, niin pääset omalle tunnuksellesi komentamalla
exit
Jotta Ubuntu juttelisi sutjakkaasti Windowsin kanssa, niin tarvitaan muutama paketti:
apt install samba samba-common-bin smbclient cifs-utils ntfs-3g
Tehdään mount-piste. Käytän NAT-tyyppisiä jakoja juureen tekemästäni nat
-hakemistosta, koska minulla ei ole tarvetta piilotella niitä kotihakemistojen suojiin. Mutta kuten aina, niin on aivan sama mihin mounttaat, joten laita itsellesi sopivin hakemisto. Annetaan tehdylle hakemistolle 777 oikeudet, niin kirjoittaminenkin onnistuu muiltakin kuin rootilta.
mkdir /nas/onedrive chmod 777 /nas/onedrive
Mount tehdään fstab
-tiedostossa:
nano /etc/fstab
Lisää itsellesi oikeaksi muokattuna tällainen:
//192.168.100.16/Users/jakke/OneDrive/Asiakirjat /nas/onedrive cifs _netdev,noauto,users,vers=3.0,credentials=/home/jagster/.credentials/onedrive,rw,nofail 0 2
Mounttia Raspberryssä asustelevaan Ubuntuun odottaa sisäverkon Windows-koneen OneDriven asiakirjat-hakemisto. Sitä ei mountata automaattisesti, vaan kuka tahansa käyttäjä voi sen mountata. Mutta koska kirjautumistiedot sijaitsevat käyttäjän jagster kotihakemistossa, niin mount pitäisi onnistua ainoastaan käyttäjältä jagster.
Löytänet sisäverkon IP-osoitteen esimerkiksi routerin hallinnasta. Mutta näet sen tälläkin. Tarvittava IP-osoite on yleensä ensimmäinen:
hostname -I
Tarvitset jaettavan hakemiston polun. Polun otit toivottavasta talteen, kun vilkaistiin Windowsin jakopolitiikkaan. Jos et, niin takaisin lunttaamaan se. Jos kopypeistaat polun, niin muista vaihtaa fstab-tiedostossa polun kenoviivat kauttaviivoiksi.
Omassa kotiverkossa lienee aivan se ja sama onko NAS:iin kirjautumiseen tarvittava salasana selkokielisenä vai ei. Joten user=tunnus,password=salasana
on usein se vähimmän vaivan tie. Mutta koska kirjautumistietojen piilottaminen ei ole kummoinenkaan urakka, niin käytin siihen erillistä tiedostoa, jonka käyttö on rajattu tiedoston omistajalle, tässä esimerkissä minulle käyttäjänä.
Tehdään käyttäjän kotihakemistoon hakemisto .credentials
ja sinne tiedosto onedrive
johon laitan Windows-tilini kirjautumistiedot – hakemisto- ja tiedostonimethän saavat tietysti olla mitä lystää, mutta olen vuosien saatossa vaan oppinut käyttämään fingleshiä. Pääasia, että itse tietää mistä on kyse.
Windowsin käyttäjätunnus ei ole aina aivan selvä, koska useimmilla kirjautumisessa taidetaan pyytää salasanaa henkilölle Etunimi Sukunimi. Käyttäjätunnus on sama kuin sen hakemiston nimi, jonka alla Users-hakemistossa omat tiedostosi ovat. Tyypillisesti se on etunimi pienellä kirjoitettuna.
- Saat luotua uuden hakemiston ja sinne tiedoston yhdellä helpolla custom-komennolla.
Avaa kirjautumistiedot sisältävä tiedot:
nano /home/jagster/.credentials/onedrive
Ja lisää sinne tiedot kahdella rivillä:
username=win-tunnus password=win-salasana
- samba saattaa joskus haluat myös tiedon työryhmästä. Lisää silloin mukaan myös rivi
domain=WORKGROUP
ja vaihdaWORKGROUP
jos se on joskus Windowsissa vaihdettu
Piilotetaan se muilta kuin käyttäjältä, ihan varmuuden vuoksi:
chmod 600 /home/jagster/.credentials/onedrive
Jos nyt yrittäisin tehdä mountin, niin se epäonnistuisi, koska käyttäjä jagster tarvitsisi pääsyn tiedostoon, joka on rootin omistama ja sallittu vain rootille. Joten fiksataan myös omistajuus:
chown -R jagster:jagster /home/jagster/.credentials
Jos tekisin automountattavan, niin silloin credentials-hakemisto ja sen tiedosto olisivat rootin kotihakemistossa. Boottivaiheessa kun kaikki tapahtuu rootin oikeuksilla.
Jos (ja toivottavasti kun…) sinulla on Raspberryssä UFW käytössä, niin törmäisit samaan kuin minäkin: dmesg
ilmoittaa, että UFW on blokannut Windows-koneen yhteyspyynnöt Raspberryn suuntaan. Kerrotaan UFW:lle, että liikenne on luvallista:
ufw allow in from <win-ip> to <rasp-ip>
Otetaan fbstabin muutokset käyttöön:
mount -a
Tarkista, että kaikki toimii. Vilkaise myös, että dmesg ei loihdi mitään huolestuttavaa. Kun kaikki on toivon mukaan hyvin, niin toista vaiheet, jos on tarve käyttää Ubuntussa paikallisesti jotain muuta Windowsin kansiota.
Teen B2B-markkinoille sisällöntuottoa sekä UX-testauksia. Samaan liittyy myös koulutukset yrityksille ja webmaailman kanssa muutoin painiville. Serverien sielunelämää on joutunut ohessa opettelmaan. Toinen puoli toiminnasta on koirien ravitsemuksen ja ruokinnan suunnittelua sekä varsinkin omistajien kouluttamista hoitamaan koiriaan oikein ja vielä paremmin.
Profiili: Jakke Lehtonen
Keskustele foorumilla Meta/KATISKA