Ubuntun YhteiskäyttöUbuntussa ei ole oletuksena kaikille käyttäjille yhteistä kansiota, johon voisi tallentaa digikuvat, musiikin ja muut tiedostot joiden pitäisi olla kaikkien käyttäjien saatavilla. Nyt tehdään sellainen
Lisäksi parannetaan kotihakemistojen yksityisyyttä.
Tavoitteet ovat seuraavat:
Kaikkien käyttäjien tulee päästä kansioon ja katselemaan kuvia / kuuntelemaan musiikkia, yms. (lukuoikeus kaikille)
Haluttujen käyttäjien tulee lisäksi päästä lisäämään, poistamaan tai muokkaamaan kansiossa olevia tiedostoja (kirjoitusoikeus ryhmälle)
Lisäksi voidaan lisätä kunkin käyttäjän oman hakemiston tekeminen yksityiseksi, sillä oletuksena kotihakemistoissa olevia tiedostoja pystyy katselemaan kuka tahansa. Uteliaiden isoveljien ei tarvitsisi välttämättä päästä lukemaan sisariensa posteja tai perheen pienimpien päästä näkemään isän kuvakokoelmaa
Osiot, jotka on merkitty Koodia ovat päätteeltä kirjoitettavia komentoja, kaikki muu on lisäinfoa.Työvaiheet:1. Kansion luonti
2. Käyttäjien lisääminen samaan ryhmään
3. Jaetun kansion oikeuksien mukauttaminen
4. Automatiikan lisääminen oikeuksien pitämiseksi haluttuina
5. Omien kotihakemistojen oikeuksien kiristäminen (haluttaessa)
1. Jaetun kansion luonticd /home
sudo mkdir yhteinen
2. Käyttäjien lisääminen samaan ryhmäänKaikki käyttäjät, joille halutaan kirjoitusoikeus jaettuun kansioon, lisätään ryhmään
users. Kaikilla muillakin on tänne lukuoikeus, mutta vain näillä käyttäjillä kirjoitusoikeus. Tämä takaa sen, että ihan perheen nuorimmaiset eivät vahingossa poista koko vuoden kuvasaalista, mutta aikuisemmilla käyttäjillä on mahdollisuus muokata, nimetä ja siirtää myös toistensa lisäämiä tiedostoja.
Tämän voi tehdä myös graafisesti. Ohjeet siihen löytyvät seuraavasta viestistäMuokattu: Helpoin tapa lisätä käyttäjiä ryhmiin on adduser-komento. Eli minun tapauksessani suoritetaan komennot:
sudo adduser mikko users
sudo adduser jossu users
Pelkkä adduser lisää käyttäjän järjestelmään ja vastaavasti addgroup-komennolla lisätään ryhmiä. man-sivut kertovat lisää.
3. Jaetun kansion oikeuksien mukauttaminenKäyttäjäsi kuuluvat nyt myös ryhmään users, mutta heidän ensisijainen ryhmänsä on silti sama kuin käyttäjänimensä. Tämä tarkoittaa että jos mikko luo tiedoston ja antaa siihen ryhmälle kirjoitusoikeuden, niin silti muut eivät pääse siihen kirjoittamaan, sillä tiedoston ryhmä määräytyy aina käyttäjän ensisijaisen ryhmän mukaan. Vaikka siis mikko ja jossu kuuluvat molemmat myös ryhmään users, niin tämä ei vielä riitä. Onneksi hakemistoihin saa lisättyä hieman taikaa...
sudo chgrp users /home/yhteinen
sudo chmod 2775 /home/yhteinen
Nyt hakemistolistaus (ls -l) näyttää hakemiston tiedoiksi seuraavat:
drwxrwsr-x 7 mikko users 184 2005-07-08 21:51 yhteinenKun katsot tarkasti oikeuksia, huomaat että ryhmän suoritusoikeuden tilalla on x:n sijasta s. Tämä tarkoittaa että hakemiston ryhmä-id-bitti on päällä.
Se taas tarkoittaa, että kaikki tiedostot tai alihakemistot jotka tämän hakemiston sisälle luodaan, kuuluvatkin ryhmälle users, eivätkä käyttäjän ensisijaiselle ryhmälle. Myös luotavien alihakemistojen ryhmä-id-bitti on automaattisesti päällä, joten sama koskee koko niidenkin alihakemistoja jne.
Koska hakemistoon annettiin ryhmälle kaikki oikeudet, niin nyt kaikki users-ryhmän jäsenet voivat paitsi lukea, niin myös muokata täällä olevia tiedostoja. Kaikki muut voivat vain lukea niitä. Nyt ollaan jo pitkällä
4. Automatiikan lisääminen oikeuksien pitämiseksi haluttuinaKun luot tiedoston, tai hakemiston, niin käyttämäsi ohjelma määrittelee niille jotkin oletusoikeudet. Näistä oikeuksista vähennetään vielä järjestelmän
umask-arvo, joka Ubuntussa on 0022. Eli kaikilta luodoilta tiedostoilta ja hakemistoilta poistetaan ryhmän ja muiden käyttäjien osalta kirjoitusoikeus.
Valitettavasti tämä tarkoittaa sitä, että kun kopioit digikuvia kamerastasi tähän uuteen jaettuun hakemistoon, niin niillä ei ole ryhmän osalta kirjoitusoikeutta. Mutta mikä pahinta, kaikilta luomiltasi alihakemistoilta puuttuu myös tämä kirjoitusoikeus, joten muut eivät pysty niihin tiedostoja lisäämään.
Jos käyttäjien umask-arvo muutetaan muotoon 0002, ei ryhmän jäseniltä automaattisesti poisteta luoduilta tiedostoilta ja kansioilta kirjoitusoikeutta. Tämä ratkaisee ongelman digikuvien kohdalta, sillä ne ovat tämän jälkeen ryhmän muokattavissa. Mutta kansioiden oikeuksia se ei lisää, sillä Gnome ei anna luotuihin kansioihin kirjoitusoikeutta muille kuin omistajalle. Tähän ei umask vaikuta.
Koska umaskin muuttaminen siis ei tilannetta ratkaissut, piti keksiä toinen keino. Sellainen tulee tässä.
Lisäämme uloskirjautumisen yhteydessä ajettavaan komentotiedostoon muutaman rivin koodia, jotka saavat aikaan sen, että kaikille edellisen uloskirjauksen jälkeen luoduille tiedostoille ja hakemistoille tässä jaetussa kansiossa annetaan ryhmän kirjoitusoikeus. Tämä tarkoittaa sitä, että kun seuraava käyttäjä kirjautuu sisään, ovat tiedostot hänen käytettävissään.
gdm:n asetustiedostot ovat muuttaneet paikkaa sitten alkuperäisen ohjeen kirjoittamisen. Alla oleva koodinpätkä muutettu vastaamaan uutta sijaintia / 9.11.08 Mikko.sudo gedit /etc/gdm/PostSession/Default
Nyt sinulla on auki komentotiedosto, joka ajetaan uloskirjautumisen yhteydessä. Lisää ennen
exit 0 -riviä seuraavat rivit tekstiä (varoitus: nämä kannattaa kopioida ja liittää tiedostoon kirjoitusvirheiden ehkäisemiseksi!).
Huom! Jos loit yhteisen hakemiston jollain muulla nimellä kuin /home/yhteinen, niin muuta skriptiin hakemiston nimi oikeaksi!
Lisää tämä auki olevaan tiedostoon ennen
exit 0 -riviä:
# Lisätty (tähän päivämäärä)
# Skripti joka antaa ryhmälle kirjoitusoikeudet jaetun kansion hakemistoihin ja tiedostoihin
find /home/yhteinen/ -type d -user $USER -print0 | xargs -0 chmod 2775
find /home/yhteinen/ -type f -user $USER -print0 | xargs -0 chmod 664
Sitten vain tallennat tiedoston ja suljet tekstieditorin.
Huom. Tämä toimii vain käytettäessä gdm-ikkunointimanageria (joka on Ubuntun oletus), joten kdm:n käyttäjät (Kubuntu) joutuvat laittamaan skriptin jonnekin muualle.
5. Omien kotihakemistojen oikeuksien kiristäminen (haluttaessa)Jos tahdot kiristää vain oman kotihakemistosi pääsyoikeuksia, niin anna seuraava komento
chmod o-r,o-x /home/$USER
Vaihtoehtoisesti voit antaa saman komennon pääkäyttäjänä kaikille muille hakemistoille /home:n alla paitsi juuri luodulle jaetulle kansiolle
cd /home
shopt -s extglob
sudo chmod o-r,o-x !(yhteinen)
Ilman
shopt -s extglob:ia seuraavan rivin hakemistonimien laajennus ei toimisi, sillä vaikka tällainen bashin manuaalissa onkin, se täytyy ensin ottaa käyttöön.
Valmista tuli. Pitäkää hauskaa
Mikko
Tämä ohje on käytettävissä lisenssillä GNU Free Documentation License.P.S. Kuten aina, on olemassa useampia kuin yksi tapa tehdä asioita, eikä tämä ole välttämättä paras ratkaisu. Mielipiteitä ja varsinkin parannusehdotuksia saa laittaa tähän perään!