1. Sissejuhatus: Mis on sudo?
sudo põhisisu ja roll
Linuxi ja Unixi süsteemides on 「sudo」 üks tähtsamaid käske.
「sudo」on lühend sõnadest「superuser do」ning see on tööriist, mis võimaldab ajutiselt kasutada administraatori (root) õigusi teatud käskude täitmiseks. Tavakasutajal puuduvad tavaliselt õigused teha süsteemitasemel muudatusi (näiteks tarkvara paigaldamine või süsteemi seadistuste muutmine). Kuid kasutades sudo
käsku, on võimalik piiratud ulatuses neid õigusi ajutiselt kasutada.
Näiteks saab järgmise käsu abil käivitada apt käsu root-õigustega:
sudo apt update
Seega toimib sudo turvalise administraatori õiguste kasutamise mehhanismina, võimaldades ühendada süsteemi turvalisuse ja kasutusmugavuse.
Erinevus su käsuga
Lisaks sudo
-le on olemas veel su
käsk, millel on sarnane eesmärk, kuid selged erinevused.
su
on lühend sõnast “substitute user” ja see võimaldab lülituda teise kasutaja (peamiselt root) peale. Sellega muutud täielikult teiseks kasutajaks.- Seevastu
sudo
võimaldab jäädes oma kasutajaks, ajutiselt täita käsku administraatori õigustes.
Teisisõnu, su
vahetab kasutajat kogu sessiooniks, samal ajal kui sudo
annab õigusi vaid konkreetsele käsule. See on oluline erinevus ka turvalisuse mõttes, mistõttu enamik tänapäevaseid Linuxi distributsioone eelistab vaikimisi kasutada sudo
-t.
Sudo kasutatavad peamised Linuxi distributsioonid
sudo
on vaikimisi kasutusel paljudes Linuxi distributsioonides, eriti järgmistes:
- Ubuntu-põhised (nt Ubuntu, Linux Mint)
→ Algseadistuses ei logita otse root kasutajana sisse, vaid kasutatakse sudo. - Debiani-põhised
→ Sudo saab lubada vajadusel, kuid sageli soovitatakse seda turvakaalutlustel. - Fedora, CentOS, Red Hat-põhised
→ Võimalik kasutada root kasutajat, kuid sudo kasutamine on samuti levinud.
Eriti Ubuntu puhul on root kasutaja algselt keelatud ning kogu süsteemi haldamine toimub sudo kaudu. Seetõttu on sudo mõistmine Ubuntu kasutajatele vältimatu.
Miks otsitakse “sudo sudo”?
Otsingusõna “sudo sudo” võib tunduda üleliigne, kuid sellel võib olla järgmine taust:
- Algajad, kes soovivad rõhutada või lihtsalt teada saada, mis on sudo ja kuidas seda kasutada
- Vigade otsing, nt
sudo: sudo: command not found
- Juhtumid, kus skriptis või torustikus kasutatakse kogemata topelt-sudo, ning tahetakse teada, mis see tähendab
Järgmistes peatükkides selgitame põhjalikult sudo õiget kasutamist, seadistamist ja probleemide lahendamist.
2. Sudo käsu põhiline kasutamine
sudo põhisüntaks
sudo
süntaks on väga lihtne.
sudo [valikud] käsk
Näiteks süsteemi paketiteabe uuendamiseks:
sudo apt update
See tähendab, et “apt update” täidetakse root-õigustes.
Parooli küsimise mehhanism ja vahemälu
Kui kasutad sudo
-t esimest korda või pärast teatud ajavahemikku, küsib süsteem kasutaja parooli. See suurendab turvalisust ja takistab väärkasutust.
Pärast parooli sisestamist jääb see lühikeseks ajaks (Ubuntu vaikimisi 5 minutit) vahemällu ning selle aja jooksul ei küsita uuesti. Seda ajavahemikku saab muuta sudoers failis.
Levinumad valikud
sudo
-l on palju valikuid, mis muudavad käsu kasutamise paindlikumaks. Siin on mõned enimkasutatavad:
-u (teise kasutajana käivitamine)
Vaikimisi täidetakse käsk root-õigustega, kuid -u
võimaldab käivitada käsku mõne teise kasutajana.
sudo -u www-data whoami
Väljundiks on www-data
, mis näitab, et käsk käivitati selle kasutaja alt.
-s (shelli avamine)
Järgmise käsuga saab ajutiselt avada shelli root-õigustes:
sudo -s
Ole root-shellis töötades ettevaatlik.
-i (täielik root seanss)
See avab täieliku root-keskkonna, sealhulgas root’i keskkonnamuutujad.
sudo -i
-l (lubatud käskude kuvamine)
Saad näha, milliseid käske tohib sudo kaudu täita.
sudo -l
See aitab kontrollida õigusi ning testida seadistusi.
Algajatele olulised tähelepanekud
sudo
järel peab olema tühik. Ntsudoapt
on vale.- Mitu käsku saab täita, kui need tsitaatidesse panna või semikooloniga eraldada.
sudo
abil GUI rakendusi käivitades võib seadistusfailide kahjustumine tekkida (ntsudo gedit
), seega ole ettevaatlik.
3. sudoers fail ja juurdepääsu kontroll
Mis on sudoers fail?
sudo
töö käitumist määrab süsteemis asuv /etc/sudoers
fail. Seal on kirjas, millised kasutajad võivad sudo kaudu milliseid käske käivitada.
Võimalik on anda kasutajatele õigused ainult teatud käskude jaoks.
See tagab minimaalsete õiguste põhimõtte ja suurendab turvalisust.
Turvaline redigeerimine visudo abil
/etc/sudoers
faili ei tohi otse tekstiredaktoriga muuta.
Vale süntaks võib muuta sudo kasutamatuks, mistõttu soovitatakse alati kasutada visudo
käsku.
sudo visudo
visudo
kontrollib süntaksi enne salvestamist ning võimaldab ohutult teha muudatusi.
Põhisüntaks ja näited
sudoers
faili põhisüntaks on järgmine:
kasutajanimi hostinimi = (käitaja) käsk
Näide:
alice ALL=(ALL:ALL) ALL
See lubab kasutajal “alice” täita kõiki käske kõigi kasutajate nimel kõigis hostides.
Paremini piiratud näide:
bob ALL=(ALL) /usr/bin/systemctl restart nginx
See võimaldab kasutajal “bob” käivitada ainult “nginx taaskäivitamist” sudo kaudu.
Grupipõhine kontroll: sudo grupp
Enamikus distributsioonides, sh Ubuntus, saavad sudo õigused kõik kasutajad, kes kuuluvad sudo gruppi.
%sudo ALL=(ALL:ALL) ALL
%sudo
abil saab õigusi anda tervele grupile.
Kasutaja lisamiseks sudo gruppi kasuta:
sudo usermod -aG sudo kasutajanimi
NOPASSWD valiku kasutamine ja ohud
Kui soovid, et sudo ei küsiks iga kord parooli, lisa NOPASSWD
valik.
alice ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
Nii saab kasutaja “alice” taaskäivitada nginx-i ilma paroolita.
See on turvarisk, seega kasuta ainult hädavajalike käskude jaoks ja mitte koos ALL
õigustega.
4. Sudo edasijõudnud kasutusviisid
Käsu täitmine teise kasutajana
Vaikimisi täidab sudo
käsu root-õigustes, aga sobiva valikuga saad täita käsu teise kasutajana.
Näiteks veebiserveri “www-data” kasutajana:
sudo -u www-data whoami
Tulemus on www-data
– käsk täideti selle kasutaja alt.
See võimaldab mugavalt testida erinevaid õigusi ja keskkondi.
Töö torude ja ümbersuunamistega
Algajad võivad hätta jääda sudo
koos ümbersuunamise (>
) või torudega (|
).
sudo echo "test" > /etc/test.conf
Siin käivitatakse echo
sudo õigustes, kuid ümbersuunamine toimub tavalise kasutaja õigustes, mistõttu kirjutamine ebaõnnestub.
Õige viis on kasutada tee
käsku:
echo "test" | sudo tee /etc/test.conf
Nii toimub kirjutamine sudo õigustes.
sudo skriptides
Skriptides, kus on vaja administraatoriõigusi, lisa sudo vajalikule käsule.
Kui skripti peaks käivitama tavakasutaja, lisa sudo ainult sinna, kuhu on vaja.
Näide (install.sh):
#!/bin/bash
echo "Installing package..."
sudo apt install -y nginx
Võid skripti alguses kontrollida, kas oled root:
if [ "$EUID" -ne 0 ]; then
echo "See skript peab jooksma root kasutajana"
exit 1
fi
Nii on skriptide kasutamine turvalisem.
Kasulikud käsklused
sudo !!
→ Korrake viimast käsku sudo abil. Näiteks:
apt update
sudo !!
See vastab sudo apt update
-le.
sudo -k
→ Kustuta sudo paroolivahemälu käsitsi. Kasulik enne pausi või süsteemi lahkumist.sudo -v
→ Pikendab sudo õigusi jooksvaks sessiooniks – kasulik pika töö puhul.
5. Turvalisus ja parimad praktikad
Minimaalsete õiguste põhimõte
sudo
suurim eesmärk on töötada ainult hädavajalike õigustega.
Ehk siis, ära kasuta pidevalt root’i, vaid ainult siis, kui vaja.
Näiteks:
- Luba kasutajal sudo kaudu täita ainult teatud käskusid (nt
systemctl restart nginx
) - Kasuta NOPASSWD ainult siis, kui see on vältimatu
- Halda õigusi grupipõhiselt (
sudo
grupp)
Logimine ja auditeerimine
sudo
logib kõik käsud. See võimaldab jälgida, kes ja millal mida tegi.
Põhilised logifailid (distro järgi):
/var/log/auth.log
(Ubuntu, Debian-põhised)journalctl
(systemd-põhised)
Sudo ajaloo vaatamiseks Ubuntus:
grep 'sudo' /var/log/auth.log
Või:
journalctl _COMM=sudo
See aitab tuvastada nii vigu kui ka pahatahtlikku tegevust.

sudo turvaviga (CVE-2021-3156)
sudo
on usaldusväärne tööriist, kuid ka sellel on olnud tõsiseid turvavigu.
Üks kuulsamaid näiteid on CVE-2021-3156 (“Baron Samedit”), mis võimaldas teatud tingimustel tavalisel kasutajal saada root-õigusi.
See viga on parandatud, kuid see näitab, et:
- sudo ja muud kriitilised paketid peavad alati olema uuendatud
- Kontrolli regulaarselt ametlikke saite ja turvaandmebaase
sudo alternatiiv: doas
Mõnes minimaalses või turvalisusele orienteeritud Linuxi keskkonnas kasutatakse sudo asemel doas käsku.
doas
on OpenBSD-st pärit lihtne tööriist, mille seadistus on oluliselt lühem ja selgem kui sudo-l.
Näide:
doas apt update
Seadistusfail /etc/doas.conf
on lihtne, näiteks:
permit nopass :wheel
Linuxis pole doas alati vaikimisi saadaval, seega võib vaja minna lisapaigaldamist.
Vali sudo või doas vastavalt oma vajadustele ja poliitikale.
6. Levinumad vead ja probleemide lahendamine
“Kasutaja pole sudoers failis” viga
kasutajanimi is not in the sudoers file. This incident will be reported.
See viga tekib, kui kasutajal pole õigust sudo kasutada, tihti uute kasutajate puhul, kes pole veel sudo gruppi lisatud.
Lahendus:
- Logi sisse teise root-õigustega kasutajana
- Lisa vajalik kasutaja sudo gruppi
sudo usermod -aG sudo kasutajanimi
Pärast seda logi uuesti sisse, et õigused kehtiksid.
Ümbersuunamise/toru “Permission denied” viga
Permission denied
See viga tekib, kui üritad sudo abil käivitada käsku, mis kirjutab faili, kuid ümbersuunamine toimub tavalise kasutaja õigustes.
Vale näide:
sudo echo "test" > /etc/test.conf
Õige viis:
echo "test" | sudo tee /etc/test.conf
Mitmerealiste kirjutuste jaoks kasuta sudo tee
või sudo bash -c
:
sudo bash -c 'echo "line1" > /etc/test.conf'
sudoers faili vigane muutmine
Kui muudat sudoers faili valesti, võib sudo muutuda kasutamatuks – see on väga ohtlik.
Lahendus:
- Logi sisse root-kasutajana (Ubuntus on root vaikimisi keelatud)
- Korrigeeri fail järgmise käsuga:
pkexec visudo
Kui pkexec pole saadaval, käivita süsteem taasterežiimis ja paranda /etc/sudoers fail käsitsi.
Vigade vältimiseks kasuta alati:
sudo visudo
“sudo: command not found”
sudo: command not found
See viga tekib siis, kui sudo
pole paigaldatud või seda ei leita PATH-ist.
Lahendus:
- Logi sisse rootina ja paigalda sudo uuesti:
apt update
apt install sudo
- Või kasuta otseteed /usr/bin/sudo:
/usr/bin/sudo ls
7. KKK: sagedased sudo küsimused
K1. Mis vahe on sudo ja su käsul?
Vastus:sudo
annab ajutiselt õigused konkreetse käsu jaoks, su
lülitab kasutajat täielikult (peamiselt root’iks).
sudo
: jääd enda kasutajaks, õigusi tõstetakse vaid vajaduselsu
: lülitud täielikult teiseks kasutajaks
Turvalisuse ja auditeerimise tõttu soovitatakse tänapäeval kasutada sudo-t.
K2. Kas sudo kasutamiseks on vaja root parooli?
Vastus:
Ei, tavaliselt tuleb sisestada omaenda kasutaja parool, mitte root’i parool.
See vähendab parooli lekkimise riski ja muudab tegevuste jälgimise lihtsamaks.
K3. Kuhu sudo logid salvestatakse?
Vastus:
Enamikes distributsioonides salvestatakse sudo tegevuslogid järgmistes kohtades:
- Ubuntu/Debian:
/var/log/auth.log
- RHEL/CentOS:
/var/log/secure
- systemd süsteemid:
journalctl _COMM=sudo
Nii saab alati tuvastada, kes ja mida tegi.
K4. Muutsin sudoers faili valesti – mida teha?
Vastus:
Muuda alati sudoers faili sudo visudo
kaudu.
Kui sudo muutub kasutamatuks, proovi järgmist:
- Logi sisse root’ina ja paranda visudo kaudu
- Ubuntus käivita süsteem taasterežiimis ning paranda fail
pkexec visudo
(kui polkit on lubatud)
Kontrolli alati süntaksit ja testi muudatused läbi.
K5. Kas on võimalik saada root-õigusi ilma sudo-ta?
Vastus:
See on võimalik, kuid see pole soovitatav turvariskide tõttu.
Näiteks:
- Kasutades
su
käsku ja sisestades root’i parooli - Logides otse sisse root kasutajana (Ubuntu puhul vaikimisi keelatud)
Enamik Linuxi distributsioone eelistab root’i otsekasutust vältida ja kasutada sudo-t.
K6. Kas sudo abil võib käivitada GUI rakendusi?
Vastus:
Üldiselt seda ei soovitata. Näiteks sudo gedit
võib rikkuda seadistusfaile või tekitada õiguste konflikte.
GUI jaoks on parem kasutada gksudo
või pkexec
(sõltuvalt keskkonnast):
pkexec gedit
8. Kokkuvõte
Mõista sudo rolli õigesti
Selles artiklis selgitasime põhjalikult sudo
käsku, selle rolli, kasutamist, seadistusi, parimaid praktikaid, levinumaid vigu ja KKK-d Linuxi/Unixi süsteemides.
sudo
pole lihtsalt “midagi, mida lisada käsu ette”, vaid oluline ligipääsu juhtimise mehhanism, mis kaitseb süsteemi turvalisust.
Õige kasutus aitab vältida probleeme
Tähtsamad punktid turvaliseks sudo kasutamiseks:
- Kasuta minimaalset vajalikke õigusi (minimaalsete õiguste põhimõte)
- Halda seadistusi alati visudo kaudu
- Kinnita ja jälgi logisid
- Ole ettevaatlik torude/ümbersuunamiste kasutamisel
- Väldi sudo kasutamist GUI rakenduste puhul
Neid põhimõtteid eirates võib tulla ette olukordi, kus failid saavad rikutud, seaded kaovad või sudo muutub kasutamatuks.
Vali endale sobiv haldusstiil
Linux on väga paindlik süsteem. Sa võid kasutada sudo’t või alternatiive nagu doas
.
Vali endale sobiv stiil vastavalt haldus- ja turvapoliitikale.
Lõpetuseks
sudo
mõistmine on esimene samm Linuxi mõistmisel.
Tegemist pole lihtsalt mugava käsuga, vaid süsteemi “võtmega”, mis aitab kõike turvaliselt hallata. Õpi seda kasutama õigesti!
Loodan, et järgmisel korral, kui Linuxit kasutad, teed seda suurema kindlusega ning teadmistega.