Beetaversioon: sisu on enamasti terviklik ja avalikuks katsetamiseks valmis, kuid vajab veel tehnilist, keelelist ja kasutatavuse kontrolli.

Peatüki vaade

Linux/Unix/macOS käsurea kiirõpik

Praegu loed peatükki Õigused, omanikud ja täitmisbitid, mis kuulub osasse Osa II: Süsteemi pilt ja haldus.

Õ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õisteMilleksMida tavaliselt näed
ls -lnäita õigusi, omanikku ja gruppirida nagu -rw-r--r--
chmodmuuda õigusiedukal juhul sageli vaikne
chownmuuda omanikku või gruppiedukal juhul sageli vaikne
täitmisbitt xluba faili käivitadafaili saab programmina käivitada
kataloogi xluba 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 +x teeb 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:

  • r tähendab lugemist
  • w tähendab kirjutamist
  • x tä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 cd abil 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 fail lisa omanikule täitmisõigus
  • g-w fail võta grupilt kirjutamisõigus ära

Numbriline kuju sobib siis, kui tahad seada terve õiguste rea korraga:

  • 644 annab omanikule lugemise ja kirjutamise, grupile ning teistele ainult lugemise
  • 755 annab 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/sh võ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

  1. Tee fail proov.sh, mis väljastab ühe rea.
  2. Anna talle täitmisõigus.
  3. Käivita fail nii sh proov.sh kui ./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 rida
  • chmod u+x skript.shanna omanikule täitmine
  • chmod 644 naide.txtsea tekstifaili õigused
  • chmod 755 skript.shsea käivitatava õigused
  • sudo chown kasutaja:grupp fail.txtmuuda omanikku

Olulised õigusekujud

  • rloe sisu
  • wmuuda sisu
  • xkäivita või sisene
  • dtegu on kataloogiga
  • 644omanik rw, teised r
  • 755omanik rwx, teised rx