Kuidas käivitada programme Linuxi käivitajast root-kasutajana?

Viimane uuendus: 15 oktoober 2026
  • Juurõigus pakub täielikku kontrolli, kuid Ubuntu ja teised distributsioonid hoiavad selle riskide vähendamiseks vaikimisi keelatud.
  • Sudo võimaldab teil õigusi iga juhtumi puhul eraldi tõsta ja peab arvestust selle üle, kes iga käsku täidab.
  • Graafiliste rakenduste jaoks on olemas abivahendid nagu kdesu, gksu, gksudo või pkexec, mida saab kasutada .desktop käivitajates.
  • Turvalisus sõltub minimaalsete õiguste kasutamisest, ebausaldusväärsete skriptide vältimisest ja kõrgendatud juurdepääsu auditeerimisest.

Süsteemiinsener haldab servereid kaasaegses andmekeskuses.

Windowsis on paljud inimesed harjunud vajutama Shift+Enter või Shift+vasakklõps, et avada menüüst Start kõrgendatud õigustega programme. Linuxis pole see alati lihtne, sest turvalisus tugineb root-, sudo- ja graafilistele abilistele ning igal töölauakeskkonnal on oma tööriistad. Sellegipoolest on rakenduste käivitamiseks root-kasutajana, otsetee kaudu või rakenduste menüüst üsna lihtsaid viise, kuigi on oluline mõista, mida see endast kujutab.

Peamine on see, et juurkasutajal on süsteemi üle täielik kontroll ja tänapäevased distributsioonid, eriti Ubuntu ja selle derivaadid, keelavad tavaliselt otsese sisselogimise. Seetõttu pole tavaline sisse logida juurkasutajana, vaid pigem tõstetakse õigusi aeg-ajalt, kasutades `sudo`-d või graafilist programmi, mis küsib parooli. Kui tahame, et käivitusprogramm käivitaks rakenduse nende õigustega, peame muutma selle täidetavat käsku või looma spetsiaalse käivitusprogrammi.

Mida tegelikult tähendab millegi käivitamine root'ina?

Süsteemiadministratsiooni tööjaam mitme monitoriga, millel kuvatakse Linuxi terminale.

Linuxis on root konto UID-ga 0 ja piiramatute õigustega . See saab lugeda, muuta või kustutada mis tahes faili, installida tarkvara, muuta kerneli konfiguratsioone ja juhtida mis tahes kasutajale kuuluvaid protsesse. See teeb sellest uskumatult võimsa tööriista, kuid hooletu kasutamise korral ka tohutu riski. Lihtne trükiviga `rm` või `mv` käsuga võib muuta süsteemi kasutuskõlbmatuks ning root'ina käivitatud pahatahtlik skript saab paigaldada tagauksi, muuta turvameetmeid või varastada andmeid praktiliselt ilma jälgedeta.

Ubuntus pole root-kontol vaikimisi parooli ja otsene sisselogimine pole lubatud. Põhimõtteliselt töötatakse oma tavalise kasutajakontoga ja teatud ülesannete jaoks kasutatakse käsku `sudo` . `sudo` tähendab sisuliselt käsu käivitamist teise kasutajana, tavaliselt root-kasutajana, pärast oma parooliga autentimist, kui kuulute `sudo` gruppi. See piirab aega, mil olete võrgule avatud, ja hoiab arvestust selle üle, kes mida tegi.

Väga spetsiifilistes olukordades, näiteks kahjustatud süsteemi taastamisel, piiratud keskkondades töötamisel või püsivat juurdepääsu nõudvate teenuste konfigureerimisel, võiksite kaaluda ajutiselt root-õiguse lubamist. Üldine soovitus on see uuesti keelata niipea, kui vajadus tekib. Mida vähem aega root-õigusega veedate, seda parem on masina stabiilsus ja turvalisus.

Juurõiguste ettevaatuseta kasutamise riskid

Üks ilmsemaid ohte on oluliste failide kogemata kustutamine . Juurkasutajana pole õiguste piiranguid; käsk nagu `sudo rm -rf /` võib süsteemi hoiatuseta pühkida. Selliste kustutamiste jaoks pole tavaliselt ka prügikasti, seega võib taastamine nõuda keerukaid kohtuekspertiisi tööriistu või isegi täielikku süsteemi uuesti installimist.

Teine oht on ebausaldusväärsete skriptide käitamine. Kui käivitate koodi, mis on alla laaditud mis tahes saidilt kõrgendatud õigustega, annate sellele sisuliselt oma kodu võtmed . Isegi kui skript tundub kahjutu, võib see sisaldada kahjulikke juhiseid või installida pahavara juurõigustega. Seetõttu on soovitatav kood enne tootmiskeskkonnas käivitamist üle vaadata, kasutada ametlikke allikaid, kontrollida kontrollsummasid ja testida seda virtuaalmasinas või konteineris.

  Linuxi parandused RAS-toe jaoks Qualcommi platvormidel

Samuti on jälgitavuse probleem. Kui kasutate käsku `sudo`, logib süsteem käsu, selle andnud kasutaja ja kellaaja faili `/var/log/auth.log`, `/var/log/secure` või `journalctl` . Kui logite sisse otse root'ina, kuvatakse kõik root'ina ja te ei saa enam teada, kes iga muudatuse tegi. Keskkondades, kus on mitu administraatorit või mis vastavad ISO 27001, PCI DSS või muudele auditeerimisstandarditele, on see jälgitavuse puudumine märkimisväärne nõrkus.

Terminali kaudu õiguste saamise viisid

Ubuntu terminalide ekraanipildi detail, mis näitab süsteemilogisid ja protsesside jälgimist.

Kõige levinum ja soovitatavam viis on lisada enne konkreetset käsku `sudo`. Näiteks pakettide värskendamiseks, teenuse taaskäivitamiseks või kaitstud faili muutmiseks küsib `sudo` teie kasutajaparooli, mitte root-parooli, ja pärast teie autentimist käivitab see käsu kõrgendatud õigustega. Kui peate selle käivitama teise kasutajana, saate kasutada käsku `sudo -u username command` . Ja kui avastate, et unustasite `sudo` kasutada, saate viimast käsku korrata käsuga `sudo !! `.

Kui kavatsed järjest mitut administratiivset ülesannet täita, võib olla mugav avada ajutine juurkest. `sudo -i` simuleerib täielikku juurkasutaja sisselogimist, laadib juurkeskkonna ja paigutab sind kodukataloogi. `sudo su` või `sudo su -` toimivad samuti, kuigi `sudo -i` on tavaliselt usaldusväärsem. Sellest seansist väljumiseks tippige lihtsalt `exit`. Juurkesta ei ole soovitatav järelevalveta lahti jätta.

Käsk `su` seevastu vahetab kasutajaid. `su - root` või lihtsalt `su -` võtab samuti omaks sihtkasutaja keskkonnamuutujad, samas kui `su root` või `su` ilma sidekriipsuta säilitab osa eelmisest keskkonnast. See erinevus seletab selliseid vigu nagu `käsku ei leitud`: administraatori käsud asuvad tavaliselt kaustades `/usr/local/sbin`, `/usr/sbin` ja `/sbin`, mis on teed, mis ei ilmu alati tavalise kasutaja tee (PATH) hulgas. Kui kasutate käsku `su` ilma sidekriipsuta, peate sisestama kogu tee või lülituma käsule `su -`, et pärida juurtee (PATH).

Kui soovid root'ile parooli lubada, saad seda teha käsuga `sudo passwd root` . Ubuntu seda ei soovita, kuid tehniliselt lubab root'il parooli kasutada. Konto lukustamiseks kasuta käsku `sudo passwd -l root` ja avamiseks käsku `sudo passwd -u root`. SSH-s kontrollib otsest root'i ligipääsu `PermitRootLogin` `/etc/ssh/sshd_config` failis. Kõige kindlam on see seada väärtusele `no` või maksimaalselt `prohibit-password`, et lubada ainult SSH paroole. Pärast seda pead SSH-teenuse taaskäivitama.

Konfigureeri kampsunid täpselt

Fail `/etc/sudoers` määratleb, kes ja mis eesmärgil saab `sudo` käsku kasutada. Seda on kõige parem mitte käsitsi muuta; õige lähenemisviis on kasutada käsku `sudo visudo` , mis lukustab faili ja kontrollib enne salvestamist süntaksit. Põhireegel on kujul `host user=(target_user)`. Näiteks `bob ALL=(ALL) ALL` lubab `bobil` käivitada mis tahes käsku root'ina mis tahes masinas. Kasutada saab ka gruppe, näiteks `%admin ALL=(ALL) ALL`.

  Liquorixi tuum Linuxis: optimeeritud tuum töölauale ja mängimiseks

Täpsemate õiguste andmiseks kasutatakse aliase. `User_Alias ​​​​ADMINS = alice, bob` grupeerib kasutajad ja `Cmnd_Alias ​​​​LOCATE = /usr/sbin/updatedb` grupeerib käsud. Seejärel kasutatakse `ADMINS ALL = LOCATE`, et need kasutajad saaksid käivitada ainult neid käske. Aliase nagu `NETWORKING` saab luua selliste käskude jaoks nagu `route`, `ifconfig`, `ping`, `iptables` jne. See rakendab vähimate õiguste põhimõtet, andmata kellelegi täielikku juurjuurdepääsu.

Valik NOPASSWD võimaldab teil käivitada teatud käske ilma paroolita, näiteks `pi ALL=(ALL)`. NOPASSWD: ALL. See on mugav, kuid ohtlik, kui seda kuritarvitatakse. Lisaks logitakse iga `sudo` kasutus, mis aitab auditeerida juurdepääsu ja tõrkeotsingut teha. Kui midagi katki läheb, saab nende logide ülevaatamisest näha, milline hiljutine muudatus tõrke põhjustas.

Graafiliste rakenduste käivitamine käivitajast root-kasutajana

Linuxi terminali vaade, mis näitab juurkataloogi / failide loendit.

Graafilise liidesega programmide puhul ei toimi lihtsalt `sudo` kasutamine tavaliselt hästi, kuna puudub terminal, mis parooli küsiks. Siin tulevadki mängu graafilised abilised . KDE-s on olemas `kdesu` : kui tead, milline käsk rakenduse käivitab, saad käivitada käsu `kdesu that_command`. KDE menüüs olev suvand `Käivita käsk` võimaldab sul rakenduse käivitada ka teise kasutajana, sisestades tema sisselogimisandmed. GNOME ja GTK keskkondades kasutati laialdaselt `gksu` ja `gksudo` ; need on `sudo` või `su` esiotsad. Näiteks `gksu synaptic` või `gksudo gparted` avavad rakenduse ja küsivad parooli.

Tänapäevastes süsteemides on gksu kas ebasoovitav või aegunud. Selle tavaline alternatiiv on pkexec , mis põhineb PolicyKitil ja võimaldab programmidel töötada õigustega vastavalt määratletud poliitikatele. Paljud tänapäeva käivitajad kasutavad pkexeci administratiivseteks ülesanneteks. Idee on sama: kasutaja ei pea terminali avama, vaid süsteem valideerib autoriseerimise kontrollitud viisil.

Käivitusaknas otsetee loomiseks tuleb redigeerida faili .desktop . Võtmeks on rida `Exec`. Kui soovite, et see töötaks root'ina, võite kasutada midagi sellist nagu `Exec=gksu /path/to/program`, `Exec=kdesu /path/to/program` või `Exec=pkexec /path/to/program`. Kui kasutate otse `sudo` käsku, peab käivitajal olema `Terminal=true` või peate konfigureerima graafilise askpass'i. Võite proovida ka vajutada Alt+F2 ja sisestada abiprogrammi ja programmi nime, näiteks `gksu synaptic`. KDE-s täidab sarnast funktsiooni `kdesu synaptic` või suvand käivitada see teise kasutajana.

Klassikaline alternatiiv nimega consolehelper on GUI-rakenduste mähis. Selleks tuleb luua sümboolne link, näiteks /usr/bin/xterm-root, mis osutab leheküljele /usr/sbin/consolehelper. Seejärel konfigureerida PAM-i, luues faili /etc/pam.d/xterm-root, lisades config-util abil autentimise, konto ja seansi. Järgmisena defineerida fail /etc/security/console.apps/xterm-root, kus USER=root ja PROGRAM=/usr/bin/xterm. Kui käivitada xterm-root, küsib consolehelper PAM-autentimist ja käivitab xtermi root'ina. Kui ilmneb viga "Xlib connection to :0.0 refused by server", võib aidata käsu xhost local:root käivitamine.

Igal juhul on graafiliste rakenduste avamisel root'ina puudusi: see segab keskkonnamuutujaid, võib seanssiiniga midagi valesti teha, mõjutada Waylandi või X11-t ning luua teie kodukataloogi root'ile kuuluvaid faile. Kõige parem on seda kasutada ainult teatud administratiivsete tööriistade jaoks ja sulgeda need kohe, kui olete lõpetanud. Ärge sirvige internetti ega avage kahtlaseid dokumente root'ina , sest iga ärakasutamine pärib täielikud õigused.

Levinud näited ülesannetest, mis nõuavad juurjuurdepääsu

Paljud igapäevased toimingud nõuavad kõrgendatud õigusi. Pakettide haldamine apt, zypper, dnf või yum abil nõuab sageli sudo kasutamist. Näiteks `sudo apt update` , `sudo apt install firefox` või `sudo zypper install docker-ce`. Sama kehtib ka süsteemiteenuste kohta: `sudo systemctl restart apache2`, `sudo systemctl restart ssh` või `sudo systemctl restart nginx`. Kasutajakontode muutmiseks kasutage `sudo usermod` ja faili omaniku muutmiseks `sudo chown`. Kriitiliste konfiguratsioonide (nt `/etc/ssh/sshd_config`) muutmiseks on samuti vaja root-õigusi, kui seda tehakse nano, vim või gedit abil.

  Kuidas GRUB-i ilma LiveCD-ta samm-sammult parandada

Sa ei vaja käsku `sudo` käsku käskude jaoks, mis ainult loevad infot või ei muuda süsteemi, näiteks `zypper repos` või `systemctl status NetworkManager`. `sudo` kasutamine kõige jaoks harjumusest on halb tava. Mõistlik on õigusi tõsta ainult siis, kui ülesanne seda nõuab, ja seejärel võimalikult kiiresti tavakasutajale tagasi lülituda.

Parimad tavad kõrgendatud õigustega töötamisel

Lähivõte sinise valgustusega serveririiulist andmekeskuses.

Kõiges peaks juhinduma vähimate õiguste printsiibist. Kasuta üksikute käskude puhul võimaluse korral käsku `sudo`, väldi püsivaid root shelle, kui see pole hädavajalik, ja välju kohe, kui oled lõpetanud. Ära käivita tundmatutest allikatest pärit skripte root'ina; vaata kood enne üle, laadi alla ametlikest repositooriumidest või usaldusväärsetest projektidest, kontrolli kontrollsummasid ja testi isoleeritud keskkonnas, kui sul on kahtlusi. Tervislik annus skeptitsismi on voorus, kui tegemist on kolmanda osapoole koodiga, millel on täielikud õigused.

Samuti on soovitatav sudoer'id detailselt seadistada, mitte loota kõige jaoks ainult sudo grupile, ning logisid auditeerida. Kui haldate servereid, kontrollige väärkasutuse avastamiseks `/var/log/auth.log`, `/var/log/secure` või `journalctl -xe`. Mitme kasutajaga keskkondades on iga käsu käivitaja teadmine vastutuse ja turvamääruste järgimise seisukohalt võtmetähtsusega.

Juurkasutaja lubamine ja keelamine peaga

Kui otsustate lubada juurjuurdepääsu, määrake parool käsuga `sudo passwd root`, kasutage seda ainult oluliste toimingute jaoks ja seejärel lukustage konto uuesti. Otse SSH-sisselogimise keelamiseks muutke faili `sshd_config` ja määrake väärtuseks `PermitRootLogin no` või `prohibit-password`, seejärel taaskäivitage SSH. Konto lokaalseks lukustamiseks kasutage käsku `sudo passwd -l root`. Selle avamiseks kasutage käsku `sudo passwd -u root`. Need meetmed vähendavad rünnakupinda ja takistavad jõhkraid rünnakuid kõige võimsama konto vastu.

Enamasti on esialgsele küsimusele praktiline vastus jaatav: programmi saab käivitajast käivitada root-õigustega, kasutades graafilist abiprogrammi nagu kdesu, gksu, gksudo või pkexec või luues .desktop-faili vastava käsuga. Seda ei tohiks aga iga rakenduse jaoks eraldi jätta. Parem on omada selgete nimedega administratiivseid käivitajaid ja kasutada neid ainult vajadusel.

Peamine järeldus on see, et root ei ole mänguasi ja sudo on loodud just selleks, et anda sulle volitusi ilma iga klõpsu püsivaks riskiks muutmata. Kui sul on vaja graafilist rakendust superkasutajana käivitada, siis eelista abiprogramme, mis vajavad parooli, veendu, et rakendus seda tõesti vajab, ja piira selle kasutamist administratiivsete ülesannetega. Nii saad nautida käivitusprogrammi mugavust, ohverdamata turvalisust, mis teeb Linuxi nii tugevaks.