Oikeudet, niistä on hyötyä (tietoturva) ja haittaa (kun ei mikään toiminut tätä sivustoa aloittaessa). Tiedostojen oikeudet määrittelee kuka tiedoston omistaa, mikä ryhmä sen omistaa ja mitä ne ja muut saavat tehdä.
Oikeudet näkyviin
Komento: ls -l kertoo tiedostojen oikeudet ja omistaja(ryhmä)n, esim: -rwxr-xr-x ninnnu ninnnu 1337 7 kesä 2005 oikeudet.php kertoo että oikeudet omistaa ninnnu, omistajaryhmä on ninnnu. (ja että tiedosto on 1337 tavua pitkä ja luotu 7. kesäkuuta vuonna 2005
Mitä noi rwx-kirjaimet sitten tarkoittaa? Ne on ne oikeusmäärittelyt:
r - Read, eli lukuoikeudet. Tarvitaan jos halutaan avata joku tiedosto tekstieditorilla tai nähdä mitä hakemistossa X on. (allekirjoittaneella oli tämän(kin) kanssa ongelmia tämän ohjeistus-sivuston avautuessa, “access denied”)
w - Write, eli kirjoitusoikeudet. Tarvitaan jos halutaan kirjoittaa/muuttaa
tiedostoa/hakemistoja (jepjep, ja tän kanssa myös oli ongelmia)
x - eXecute, eli suoritus/ajo-oikeudet.
Miksi sitten noita kirjaimia on monta kertaa tossa samassa jonossa? Tuo oikeusrimpsu voidaan jakaa kolmeen kolmi-merkkiseen osaan (sitä ekaa kirjainta/merkkiä ei lasketa noihin ryhmiin): Ensimmäiset kolme kirjainta (rwx) kertoo tiedoston/hakemiston omistajan oikeudet, eli omistajalla on nyt täydet oikeudet tiedostoon. Toiset kolme kirjainta (r-x) kertoo tiedoston omistavan ryhmän oikeudet, ryhmään kuuluvat
saa siis lukea ja suorittaa tiedoston, mutta ei muuttaa sitä. Viimeiset kolme kirjainta (r-x) kertoo kaikkien muiden oikeudet tiedostoon. Hekin saavat lukea ja suorittaa tiedoston.
No entä sitten se ensimmäinen merkki jota ei päästetty mihinkään ryhmään? Se kertoo järjestelmälle että minkä tyyppinen tiedosto se on: - - Ei erikoismerkitystä, ihan normaali tiedosto.
d - Directory, eli kyseessä on hakemisto.
l - Link, eli symbolinen linkki.
c - Merkkiperusteinen laitetiedosto, en tiedä mitä se tarkkaan ottaen tarkoittaa mutta ei sillä kai ole väliäkään. Kertokaa joku mulle niin lisään sen tähän.
b - Lohkoperusteinen laitetiedosto, en tiedä tästäkään mitään joten kertokaa mulle, jooko?
Oikeuksien muuttaminen
Noin, nyt kun tiedetään mitä ne oikeudet ja muut söherrykset ls -l-listauksen alussa on niin varmaan halutaan muuttaakin niitä. Muuttaminen tapahtuu seuraavilla komennoilla: chown uusiomistaja tiedosto(t) - CHange OWNership, eli vaihda omistajuutta.
Tämä vaihtaa tiedoston omistajatunnusta (ei ryhmää, sen tekee chgrp), HUOM! Sulla täytyy olla pykälää tärkempi syy käyttää tätä, omistajuutta et saa takaisin jos vaihdat sen.
Ethän sä saa esim. autoasi takaisin jos annat (lainaamista ei lasketa antamiseen) sen (kaikki) avaimet jollekkin toiselle.
chgrp uusiryhmä tiedosto(t) - CHange GRouP, vaihda omistajaryhmää. Tämä vaihtaa tiedoston omistajaryhmää, tämän voit vaihtaa vielä jälkeenpäinkin.
chmod uudetoikeudet tiedosto(t) - Vaihtaa tiedosto(je)n oikeudet. Tästä lisää seuraavassa kappaleessa.
chmodista vielä
Chmod vaihtaa oikeuksia, senhän tiedätkin jo. Mutta miten ne uudet oikeudet voikaan kertoa sille? Siihen on kaksi tapaa:
Simppeli tapa:
esim: chmod u=rwx,g=rw,o=rx tiedosto vaihtaa tiedoton omistajalle rwx-oikeudet, omistajaryhmälle rw- ja muille rx-oikeudet. HUOM! noi pilkut pitää olla tuolla.
Lyhyempi tapa:
Lyhempi tapa vaatii vähän totuttelua, silloin kun ei varsinaisesti nähdä noita rwx-tekstejä vaan oikeusryhmät ovat jokainen 1 numero, se numero on jotain 0:n ja 7:n väliltä, riippuen mitkä oikeudet annetaan.
Noi kolme numeroa muodostuu tällä tavalla:
Lukuoikeus = 4
Kirjoitusoikeus = 2
Suoritusoikeus = 1
Noista valitaan halutut oikeudet ja summataan niiden numerot, esimerkiksi luku-ja suoritusoikeus olisi numero 5, tämä vastaisi ls-listalla r-x-oikeutta.
Tuolla tavalla muodostetaan siis 3 numeroa, ensimmäinen on omistajan numero, toinen omistajaryhmän numero ja kolmas muiden numero.
esim: chmod 775 foo.bar muuttaa foo.bar-tiedoston oikeudet niin, että omistajalla on täydet oikeudet (rwx), samoin omistajaryhmällä (rwx) mutta kaikilla muilla on vain luku- ja suoritusoikeudet (r-x).