Kasutajad, grupid ja sudo
Loogika
Unix-laadsed süsteemid eeldavad, et igal tegevusel on tegija. Seetõttu on oluline aru saada, millise kasutajana sa töötad, millistesse gruppidesse kuulud ja millal on vaja kõrgemaid õigusi.
Kiirülevaade
Eesmärk on teha nähtavaks, kes käsu käivitab ja millal kasutatakse kõrgemaid õigusi.
| Käsk | Milleks | Mida tavaliselt näed |
|---|---|---|
whoami | näita praegust kasutajat | üks kasutajanimi |
id | näita kasutaja ja gruppide identiteeti | pikem rida UID/GID ja gruppidega |
groups | näita gruppe lühemalt | grupinimede loend |
sudo käsk | käivita üks käsk kõrgemate õigustega | parooliküsimus või veateade |
sudo -l | kontrolli lubatud sudo käske | lubade loend või keeld |
Tüüpilised algaja vead
- arvatakse, et
sudotähendab “paranda see käsk võluväel ära” - jäädakse pikaks ajaks
root-i või kõrgemate õigustega shelli - käivitatakse ohtlik käsk
sudo-ga enne, kui kontrollitakse, kus parajasti ollakse
Kiirspikker
whoaminäitab aktiivset kasutajatidnäitab kasutajat ja gruppegroupsnäitab gruppesudo käskkäivitab käsu kõrgemate õigustegasu - kasutajavahetab kasutajat
Käivita need käsud
whoami
id
groups
sudo -l
Miks ettevaatlik olla
sudo annab suure võimu. Vale käsk kõrgemate õigustega võib:
- kustutada süsteemifaile
- muuta õigusi valesti
- paigaldada või eemaldada tarkvara
Seega tasub enne sudo käivitamist mõelda, kas seda on päriselt vaja.
Mis on root
root on Unix-laadsete süsteemide eriline administraatori kasutaja.
Oluline loogika:
- tavakasutaja töötab piiratud õigustega
rootvõib peaaegu kõikesudoannab tavakasutajale võimaluse käivitada mõni üksik käsk ajutiselt kõrgemate õigustega
Seega ei ole root ja sudo päris sama asi:
rooton kasutajasudoon tööriist, millega mõni käsk käivitatakse kõrgemate õigustega
Kuidas root promptis ära tunda
Sageli on root-i promptis lõpus märk #, samas kui tavakasutajal on sageli $ või %.
Näited:
kasutaja@mac proov % whoami
kasutaja
root@server:/etc# whoami
root
See ei ole küll absoluutne reegel, kuid väga levinud rusikareegel on:
$või%tähendab tavakasutajat#tähendab, et tasub olla eriti ettevaatlik
Kui on kahtlus, kontrolli alati:
whoami
id
sudo käsk vs sudo -i vs su -
Kõige ohutum tavakasutus on enamasti:
sudo käsk
Näiteks:
sudo apt update
sudo systemctl restart ssh
See on hea, sest kõrgemad õigused kehtivad ainult sellele ühele käsule.
On olemas ka kujud:
sudo -i
su -
Need annavad sulle root-shelli või vahetavad kasutajat. See tähendab, et järgmised käsud töötavad juba kõrgemate õigustega seni, kuni sellest shellist väljud.
Algajale on see riskantsem, sest:
- prompt võib muutuda
- iga järgmine käsk võib teha suurema mõjuga muudatuse
- on lihtne unustada, et oled enam mitte tavakasutaja
Seepärast on hea algreegel:
- eelista
sudo käsk - väldi püsivat root-shelli, kui selleks ei ole selget põhjust
Mida root-ina mitte teha
Hea ettevaatusreegel on: ära tee harjutusi, failide sorteerimist ega igapäevast tekstitööd root-kasutajana.
Väldi eriti:
rm -rfkäske root'ina- failide juhuslikku
chownvõichmodmuutmist süsteemikaustades - harjumust "kui ei tööta, siis pane
sudoette"
Parem mõtteviis on:
- proovi käsku tavakasutajana
- loe veateadet
- mõtle, kas probleem on õigustes või hoopis milleski muus
- kasuta
sudoainult siis, kui tead, miks seda vaja on
Väike praktiline kontroll
Kui tahad näha, millal oled tavakasutaja ja millal kõrgemates õigustes, siis need käsud on kõige kasulikumad:
whoami
id
sudo -l
Need annavad rohkem kindlust kui ainult prompti kuju vaatamine.
Minitest
- Vaata oma kasutaja gruppe.
- Uuri, milliseid käske tohib sinu kasutaja
sudoabil käivitada. - Selgita oma sõnadega, miks
sudo rm -rf ...on ohtlik. - Selgita ühe lausega, mis vahe on
rootkasutajal ja käsulsudo.
Peatüki täisspikker
Baas ja süsteemipilt
Eesmärk
õpi nägema, millise kasutajana sa töötad, millistes gruppides oled ja millal on sudo päriselt vajalik
Põhikujud
whoamikontrolli kasutajatidloe grupid väljagroupsvaata grupinimesidsudo -lvaata sudo õigusisudo apt updateüks kõrgem käsksu - kasutajavaheta kasutajat
Olulised märgid ja rollid
$tavaline kasutaja%teine levinud tavaviip#root või kõrgemad õigusedrootadministraatori kasutajasudo -iava kõrgem shellsudo käskeelista ühte käsku