Õigused, omanikud ja täitmisbitid
Loogika
Õigused määravad, kes võib faili lugeda, muuta või käivitada. See on seotud kasutajate, gruppide, sudo ja shelliskriptidega, sest kõik need teemad eeldavad õiguste õiget mõistmist.
Kiirülevaade
Eesmärk on lugeda õiguste rida, teha fail vajadusel käivitatavaks ja mõista veateadet Permission denied.
| Käsk või mõiste | Milleks | Mida tavaliselt näed |
|---|---|---|
ls -l | näita õigusi, omanikku ja gruppi | rida nagu -rw-r--r-- |
chmod | muuda õigusi | edukal juhul sageli vaikne |
chown | muuda omanikku või gruppi | edukal juhul sageli vaikne |
täitmisbitt x | luba faili käivitada | faili saab programmina käivitada |
kataloogi x | luba kataloogi „siseneda“ | nimed ja teed muutuvad kasutatavaks |
drwxr-xr-x algab d tähega, sest tegu on kataloogiga.
Tüüpilised algaja vead
- arvatakse, et
chmod +xteeb failist automaatselt „programmi“ - muudetakse õigused liiga laiaks, ilma et oleks aru saadud, kellele mida antakse
- aetakse segi faili lugemisõigus ja käivitamisõigus
Õiguste vaatamine
ls -l
Näites:
-rw-r--r-- 1 mari users 120 Apr 12 10:00 naide.txt
See rida kirjeldab:
- faili tüüpi
- omaniku õigusi
- grupi õigusi
- teiste kasutajate õigusi
Lühidalt:
rtähendab lugemistwtähendab kirjutamistxtähendab faili puhul käivitamist, kataloogi puhul sisenemist
Miks kataloogi x-õigus on eriline
Faili puhul tähendab x, et faili võib programmina käivitada.
Kataloogi puhul tähendab x midagi natuke muud:
- tohid sinna
cdabil siseneda - tohid kasutada selle sees olevaid nimesid
- ilma
x-õiguseta võib kataloog olemas olla, aga sa ei saa selles normaalselt liikuda
Kataloogi r lubab nimede loendit lugeda, w kirjeid luua või eemaldada ning x teadaolevaid nimesid kasutada. Faili kustutamine sõltub tavaliselt vanemkataloogi w- ja x-õigusest, mitte faili enda kirjutamisõigusest; lisareeglid, näiteks sticky-bit ja ACL, võivad seda piirata.
Õiguste muutmine
chmod u+x skript.sh
chmod 644 naide.txt
Siin on kaks levinud stiili:
- sümboolne kuju nagu
chmod u+x fail - numbriline kuju nagu
chmod 644 fail
Sümboolne kuju sobib hästi siis, kui tahad teha ühe väikese muudatuse:
u+x faillisa omanikule täitmisõigusg-w failvõta grupilt kirjutamisõigus ära
Numbriline kuju sobib siis, kui tahad seada terve õiguste rea korraga:
644annab omanikule lugemise ja kirjutamise, grupile ning teistele ainult lugemise755annab omanikule kõik kolm õigust, grupile ning teistele lugemise ja täitmise
Numbrid on summad: r = 4, w = 2, x = 1. Näiteks 6 = 4 + 2. Need määravad õigused, mitte faili tüübi.
Omaniku muutmine
sudo chown kasutaja:grupp fail.txt
Käivitatavaks tegemine
chmod +x ja shebang-rida käivad sageli koos.
- shebang nagu
#!/bin/shvõi#!/usr/bin/env python3ütleb, millise tõlgendajaga faili käivitada - täitmisõigus ütleb, et faili tohib käivitada käsuga
./fail - kui käivitad faili kujul
./fail, siis süsteem vaatab kõigepealt faili algust ja otsib sealt, millega seda tõlgendada
Kui üks neist puudub, siis võib fail küll olemas olla, aga ta ei käivitu ootuspäraselt.
Käivita need käsud
printf '#!/bin/sh\necho tere\n' > tere.sh
chmod +x tere.sh
./tere.sh
printf '#!/usr/bin/env perl\nprint \"tere\\n\";\n' > tere.pl
chmod +x tere.pl
./tere.pl
Minitest
- Tee fail
proov.sh, mis väljastab ühe rea. - Anna talle täitmisõigus.
- Käivita fail nii
sh proov.shkui./proov.sh.
Peatüki täisspikker
Baas ja süsteemipilt
Eesmärk
loe õiguste rida, mõista rwx tähendust ja erista faili käivitatavust kataloogi läbikäigust
Põhikujud
ls -l fail.txtloe õiguste ridachmod u+x skript.shanna omanikule täitminechmod 644 naide.txtsea tekstifaili õigusedchmod 755 skript.shsea käivitatava õigusedsudo chown kasutaja:grupp fail.txtmuuda omanikku
Olulised õigusekujud
rloe sisuwmuuda sisuxkäivita või sisenedtegu on kataloogiga644omanik rw, teised r755omanik rwx, teised rx