Ero sivun ”Kansion yhteiskäyttö ryhmässä” versioiden välillä
p (huomautus pois + katso myös) |
(pientä kehittelyä) |
||
Rivi 3: | Rivi 3: | ||
Tällainen tilanne on esimerkiksi: | Tällainen tilanne on esimerkiksi: | ||
* palvelimella, jossa useampi henkilö tekee yhdessä jotakin projektia tietyssä hakemistossa ja halutaan, että ryhmän sisäinen luku- ja kirjoitusoikeus säilyy myös uusissa ja muokatuissa tiedostoissa. | * palvelimella, jossa useampi henkilö tekee yhdessä jotakin projektia tietyssä hakemistossa ja halutaan, että ryhmän sisäinen luku- ja kirjoitusoikeus säilyy myös uusissa ja muokatuissa tiedostoissa. | ||
* kotona, jos vaikkapa jokaisella perheenjäsenellä on oma käyttäjätunnus mutta halutaan silti pitää tietyssä hakemistossa yhteinen multimedia-arkisto, joihin kaikilla on luku- ja kirjoitusoikeus. | * kotona, jos vaikkapa jokaisella perheenjäsenellä on oma käyttäjätunnus, mutta halutaan silti pitää tietyssä hakemistossa yhteinen multimedia-arkisto, joihin kaikilla on luku- ja kirjoitusoikeus. | ||
== chown ja chmod (ei riitä) == | == Perinteinen lähestymistapa: [[chown]] ja [[chmod]] (ei riitä) == | ||
Useimmiten käyttäjä yrittää ratkaista asian siten, että luo uuden käyttäjäryhmän johon halutut käyttäjätunnukset | Useimmiten käyttäjä yrittää ratkaista asian siten, että hän luo uuden käyttäjäryhmän johon lisää halutut käyttäjätunnukset. Tämän jälkeen hän asettaa hakemiston omistajaksi kyseisen ryhmän ja muokkausoikeudet sellaisiksi, että jokaisella ryhmään kuuluvalla on luku- ja kirjoitusoikeudet. | ||
Esimerkki: tiedoston omistaa käyttäjä | Esimerkki: tiedoston omistaa käyttäjä <tt>otto</tt> ja ryhmä <tt>tiimi</tt>. Molemmilla on luku-, kirjoitus- ja suoritusoikeudet (''rwx''), muilla käyttäjätunnuksilla ainoastaan luku- ja suoritusoikeus (''r-x''): | ||
drwxrxxr-x 8 otto tiimi 1024 Oct 7 10:23 . | drwxrxxr-x 8 otto tiimi 1024 Oct 7 10:23 . | ||
-rwxrxxr-x 8 otto tiimi 1024 Oct 7 10:25 teksti.txt | -rwxrxxr-x 8 otto tiimi 1024 Oct 7 10:25 teksti.txt | ||
Tämä ei aina riitä, koska monet tekstinkäsittelyohjelmat ja muut muokkausohjelmat vaihtavat muokatessa samalla tiedoston omistustiedot ja käyttöoikeudet siten, että tallennettu tiedosto on sekä kirjoittajan omistama että myös kirjoittajan yksityisessä ryhmässä eikä muilla ole muokkausoikeuksia tiedostoon. | Tämä ei aina riitä, koska monet tekstinkäsittelyohjelmat ja muut muokkausohjelmat vaihtavat muokatessa samalla tiedoston omistustiedot ja käyttöoikeudet siten, että tallennettu tiedosto on sekä kirjoittajan omistama että myös kirjoittajan yksityisessä ryhmässä, eikä muilla näin ole muokkausoikeuksia tiedostoon. | ||
Esimerkiksi tiedosto-oikeudet joillakin ohjelmilla muokkaamisen ja tallentamisen jälkeen: | Esimerkiksi tiedosto-oikeudet joillakin ohjelmilla muokkaamisen ja tallentamisen jälkeen: | ||
drwxr-xr-x 8 otto otto 1024 Oct 7 10:25 teksti.txt | drwxr-xr-x 8 otto otto 1024 Oct 7 10:25 teksti.txt | ||
Lisäksi kun tällaiseen hakemistoon luodaan uusia tiedostoja, näiden tiedostojen omistajaksi asetetaan tiedoston luovan käyttäjän käyttäjätunnus ja omistajaryhmäksi tämän käyttäjän yksityinen ryhmä. | |||
Vaihtoehtoisia tapoja luoda pysyvät ryhmäoikeudet on useita. | |||
== setgid-bitti ja umask == | |||
Käyttäjän umask taas ajaa asian käyttöoikeuksien osalta. | [[Setgid]]-bitti huolehtii siitä, että kaikki hakemistoon tehtävät uudet tiedostot ja alihakemistot perivät hakemistolla sillä hetkellä olevan ryhmän ja myös oikeudet. | ||
Käyttäjän [[umask]] taas ajaa asian käyttöoikeuksien osalta. | |||
Esimerkin lähtötilanne: | Esimerkin lähtötilanne: | ||
$ sudo mkdir /var/tmp/meep2 | $ [[sudo]] mkdir /var/tmp/meep2 | ||
$ ls -la /var/tmp/meep2 | $ [[ls]] -la /var/tmp/meep2 | ||
drwxr-xr-x 2 root root 1024 Oct 7 10:23 . | drwxr-xr-x 2 root root 1024 Oct 7 10:23 . | ||
Käyttäjän pitää olla siinä ryhmässä jolle hakemisto annetaan: | Käyttäjän pitää olla siinä ryhmässä, jolle hakemisto annetaan: | ||
$ groups otto | $ [[groups]] otto | ||
otto: tiimi staff wwwadmin members | otto: tiimi staff wwwadmin members | ||
Vaihdetaan hakemiston omistajaryhmä: | Vaihdetaan hakemiston omistajaryhmä: | ||
$ sudo chgrp tiimi /var/tmp/meep2 | $ sudo [[chgrp]] tiimi /var/tmp/meep2 | ||
$ ls -la /var/tmp/meep2 | $ ls -la /var/tmp/meep2 | ||
drwxr-xr-x 2 root tiimi 1024 Oct 7 10:23 . | drwxr-xr-x 2 root tiimi 1024 Oct 7 10:23 . | ||
Asetetaan hakemistolle sellainen asetus (sgid-bitti), että uusille tiedostoille peritään hakemiston omistajaryhmä: | |||
$ sudo chmod g+s /var/tmp/meep2 | |||
Tarkistetaan oma umask (joka on oikein): | Tarkistetaan oma umask (joka on oikein): | ||
Rivi 56: | Rivi 61: | ||
drwxrwsr-x 2 otto tiimi 1024 Oct 7 10:27 myyp | drwxrwsr-x 2 otto tiimi 1024 Oct 7 10:27 myyp | ||
''Huom! Tiedostojen g+s on eri asia kuin hakemistojen g+s. Jos tiedostolle asettaa g+s:n, se tarkoittaa sitä, että kun tiedosto suoritetaan, sen omistajaryhmäksi tulee tiedoston omistajaryhmä eikä sen käynnistäneen käyttäjän senhetkinen käyttäjäryhmä. ''g+s'' pitääkin asettaa nimenomaan hakemistoille.'' | |||
''Huom! Tiedostojen g+s on eri asia kuin hakemistojen g+s. Jos tiedostolle asettaa g+s:n, se tarkoittaa sitä, että kun tiedosto | |||
== Setgidin käyttöönottaminen näppärästi == | == Setgidin käyttöönottaminen näppärästi == | ||
Rivi 73: | Rivi 77: | ||
sudo find /www/tiimihakemisto -type f -exec chmod g+rw {} \; | sudo find /www/tiimihakemisto -type f -exec chmod g+rw {} \; | ||
= Ajastettu cron = | == Ajastettu [[cron]] == | ||
Yksi tapa ratkaista ongelma on laittaa croniin ajastus, joka ajaa komennot ''chmod -R 775 /hakemisto'' ja ''chown -R käyttäjä:ryhmä /hakemisto'' kerran vuorokaudessa. Huono puoli on se, että ratkaisu kuluttaa turhaan resursseja silloin kun mikään ei ole muuttunut, tiedostoihin ei voi laittaa hienojakoisemmin oikeuksia eikä muutokset tapahtu reaaliaikaisesti. | Yksi tapa ratkaista ongelma on laittaa croniin ajastus, joka ajaa komennot ''chmod -R 775 /hakemisto'' ja ''chown -R käyttäjä:ryhmä /hakemisto'' kerran vuorokaudessa. Huono puoli on se, että ratkaisu kuluttaa turhaan resursseja silloin kun mikään ei ole muuttunut, tiedostoihin ei voi laittaa hienojakoisemmin oikeuksia eikä muutokset tapahtu reaaliaikaisesti. | ||
= ACL eli pääsynvalvontalistat = | == ACL eli pääsynvalvontalistat == | ||
Linuxissa voi ottaa käyttöön ACL-toiminnon, jonka avulla tiedosto-oikeuksien hallintaa voi tehdä huomattavasti yksityiskohtaisemmin. ACL-toiminto vaatii kuitenkin jonkin verran opettelua ja konfigurointia. | Linuxissa voi ottaa käyttöön ACL-toiminnon, jonka avulla tiedosto-oikeuksien hallintaa voi tehdä huomattavasti yksityiskohtaisemmin. ACL-toiminto vaatii kuitenkin jonkin verran opettelua ja konfigurointia. | ||
= Tiedostot omalla osiollaan = | == Tiedostot omalla osiollaan == | ||
Esimerkiksi sellaisessa tilanteessa, jossa perheen kaikki multimediatiedostot ovat yhdellä osiolla ja sitä halutaan käyttää myös Windowsista, näppärä ratkaisu on laittaa osion tiedostojärjestelmäksi NTFS ja sitten liittää se Linuxin sopivalla umask- ja ryhmätiedoilla, jolloin kaikki osion tiedostot ovat varmasti samoilla omistus- ja käyttöoikeuksilla. | Esimerkiksi sellaisessa tilanteessa, jossa perheen kaikki multimediatiedostot ovat yhdellä osiolla ja sitä halutaan käyttää myös Windowsista, näppärä ratkaisu on laittaa osion tiedostojärjestelmäksi NTFS ja sitten liittää se Linuxin sopivalla umask- ja ryhmätiedoilla, jolloin kaikki osion tiedostot ovat varmasti samoilla omistus- ja käyttöoikeuksilla. | ||
Esimerkkirivi /etc/fstab-tiedostosta: | Esimerkkirivi [[fstab|/etc/fstab]]-tiedostosta: | ||
/dev/hda1 /mnt/wintoosa ntfs defaults,umask=0022,gid=1005 0 0 | /dev/hda1 /mnt/wintoosa ntfs defaults,umask=0022,gid=1005 0 0 | ||
= Katso myös = | == Katso myös == | ||
*[[Tiedoston oikeudet]] | *[[Tiedoston oikeudet]] | ||
*[[Käyttäjä]] | *[[Käyttäjä]] |
Versio 9. lokakuuta 2008 kello 13.56
Joskus on tarvetta sille, että tietokoneella on hakemisto, johon usealla henkilöllä on sekä luku- että kirjoitusoikeudet pysyvästi siten, että myös kaikissa uusissa ja muokatuissa tiedostoissa säilyy ryhmän sisäinen luku- ja kirjoitusoikeus.
Tällainen tilanne on esimerkiksi:
- palvelimella, jossa useampi henkilö tekee yhdessä jotakin projektia tietyssä hakemistossa ja halutaan, että ryhmän sisäinen luku- ja kirjoitusoikeus säilyy myös uusissa ja muokatuissa tiedostoissa.
- kotona, jos vaikkapa jokaisella perheenjäsenellä on oma käyttäjätunnus, mutta halutaan silti pitää tietyssä hakemistossa yhteinen multimedia-arkisto, joihin kaikilla on luku- ja kirjoitusoikeus.
Perinteinen lähestymistapa: chown ja chmod (ei riitä)
Useimmiten käyttäjä yrittää ratkaista asian siten, että hän luo uuden käyttäjäryhmän johon lisää halutut käyttäjätunnukset. Tämän jälkeen hän asettaa hakemiston omistajaksi kyseisen ryhmän ja muokkausoikeudet sellaisiksi, että jokaisella ryhmään kuuluvalla on luku- ja kirjoitusoikeudet.
Esimerkki: tiedoston omistaa käyttäjä otto ja ryhmä tiimi. Molemmilla on luku-, kirjoitus- ja suoritusoikeudet (rwx), muilla käyttäjätunnuksilla ainoastaan luku- ja suoritusoikeus (r-x):
drwxrxxr-x 8 otto tiimi 1024 Oct 7 10:23 . -rwxrxxr-x 8 otto tiimi 1024 Oct 7 10:25 teksti.txt
Tämä ei aina riitä, koska monet tekstinkäsittelyohjelmat ja muut muokkausohjelmat vaihtavat muokatessa samalla tiedoston omistustiedot ja käyttöoikeudet siten, että tallennettu tiedosto on sekä kirjoittajan omistama että myös kirjoittajan yksityisessä ryhmässä, eikä muilla näin ole muokkausoikeuksia tiedostoon.
Esimerkiksi tiedosto-oikeudet joillakin ohjelmilla muokkaamisen ja tallentamisen jälkeen:
drwxr-xr-x 8 otto otto 1024 Oct 7 10:25 teksti.txt
Lisäksi kun tällaiseen hakemistoon luodaan uusia tiedostoja, näiden tiedostojen omistajaksi asetetaan tiedoston luovan käyttäjän käyttäjätunnus ja omistajaryhmäksi tämän käyttäjän yksityinen ryhmä.
Vaihtoehtoisia tapoja luoda pysyvät ryhmäoikeudet on useita.
setgid-bitti ja umask
Setgid-bitti huolehtii siitä, että kaikki hakemistoon tehtävät uudet tiedostot ja alihakemistot perivät hakemistolla sillä hetkellä olevan ryhmän ja myös oikeudet.
Käyttäjän umask taas ajaa asian käyttöoikeuksien osalta.
Esimerkin lähtötilanne:
$ sudo mkdir /var/tmp/meep2 $ ls -la /var/tmp/meep2 drwxr-xr-x 2 root root 1024 Oct 7 10:23 .
Käyttäjän pitää olla siinä ryhmässä, jolle hakemisto annetaan:
$ groups otto otto: tiimi staff wwwadmin members
Vaihdetaan hakemiston omistajaryhmä:
$ sudo chgrp tiimi /var/tmp/meep2 $ ls -la /var/tmp/meep2 drwxr-xr-x 2 root tiimi 1024 Oct 7 10:23 .
Asetetaan hakemistolle sellainen asetus (sgid-bitti), että uusille tiedostoille peritään hakemiston omistajaryhmä:
$ sudo chmod g+s /var/tmp/meep2
Tarkistetaan oma umask (joka on oikein):
$ umask 0002
Luodaan uusi tiedosto
$ touch /var/tmp/meep2/moop $ ls -la /var/tmp/meep2 drwxrwsr-x 2 root tiimi 1024 Oct 7 10:26 . -rw-rw-r-- 1 otto tiimi 0 Oct 7 10:26 moop
sgid-bitti periytyy alihakemistoille:
$ ls -la /var/tmp/meep2 drwxrwsr-x 3 root tiimi 1024 Oct 7 10:27 . -rw-rw-r-- 1 otto tiimi 0 Oct 7 10:26 moop drwxrwsr-x 2 otto tiimi 1024 Oct 7 10:27 myyp
Huom! Tiedostojen g+s on eri asia kuin hakemistojen g+s. Jos tiedostolle asettaa g+s:n, se tarkoittaa sitä, että kun tiedosto suoritetaan, sen omistajaryhmäksi tulee tiedoston omistajaryhmä eikä sen käynnistäneen käyttäjän senhetkinen käyttäjäryhmä. g+s pitääkin asettaa nimenomaan hakemistoille.
Setgidin käyttöönottaminen näppärästi
1. Anna hakemisto ryhmän omistukseen:
sudo chgrp -R tiimi /www/tiimihakemisto
2. Aseta hakemistoille oikeudet JA setgid-bitti
sudo find /www/tiimihakemisto -type d -exec chmod g+rwxs {} \;
3 Aseta tiedostoille muokkausoikeudet
sudo find /www/tiimihakemisto -type f -exec chmod g+rw {} \;
Ajastettu cron
Yksi tapa ratkaista ongelma on laittaa croniin ajastus, joka ajaa komennot chmod -R 775 /hakemisto ja chown -R käyttäjä:ryhmä /hakemisto kerran vuorokaudessa. Huono puoli on se, että ratkaisu kuluttaa turhaan resursseja silloin kun mikään ei ole muuttunut, tiedostoihin ei voi laittaa hienojakoisemmin oikeuksia eikä muutokset tapahtu reaaliaikaisesti.
ACL eli pääsynvalvontalistat
Linuxissa voi ottaa käyttöön ACL-toiminnon, jonka avulla tiedosto-oikeuksien hallintaa voi tehdä huomattavasti yksityiskohtaisemmin. ACL-toiminto vaatii kuitenkin jonkin verran opettelua ja konfigurointia.
Tiedostot omalla osiollaan
Esimerkiksi sellaisessa tilanteessa, jossa perheen kaikki multimediatiedostot ovat yhdellä osiolla ja sitä halutaan käyttää myös Windowsista, näppärä ratkaisu on laittaa osion tiedostojärjestelmäksi NTFS ja sitten liittää se Linuxin sopivalla umask- ja ryhmätiedoilla, jolloin kaikki osion tiedostot ovat varmasti samoilla omistus- ja käyttöoikeuksilla.
Esimerkkirivi /etc/fstab-tiedostosta:
/dev/hda1 /mnt/wintoosa ntfs defaults,umask=0022,gid=1005 0 0