Kako pokretati programe kao root iz pokretača u Linuxu

Zadnje ažuriranje: 15 listopada 2026
  • Root nudi potpunu kontrolu, ali Ubuntu i druge distribucije ga prema zadanim postavkama onemogućuju kako bi smanjili rizike.
  • Sudo vam omogućuje podizanje privilegija od slučaja do slučaja i vodi evidenciju o tome tko izvršava svaku naredbu.
  • Za grafičke aplikacije postoje pomoćni programi kao što su kdesu, gksu, gksudo ili pkexec, koji se mogu koristiti u .desktop pokretačima.
  • Sigurnost ovisi o korištenju minimalnih privilegija, izbjegavanju nepouzdanih skripti i nadzoru povišenog pristupa.

Sistemski inženjer koji upravlja serverima u modernom podatkovnom centru.

U sustavu Windows mnogi su navikli pritiskati Shift+Enter ili Shift+lijevi klik za otvaranje programa s povišenim privilegijama iz izbornika Start. U Linuxu to nije uvijek jednostavno jer se sigurnost oslanja na root, sudo i grafičke pomoćnike , a svako okruženje radne površine ima svoje alate. Unatoč tome, postoje prilično jednostavni načini za pokretanje aplikacija kao root iz pokretača, prečaca ili izbornika aplikacija, iako je važno razumjeti što to podrazumijeva.

Ključno je da root korisnik ima apsolutnu kontrolu nad sustavom , a moderne distribucije, posebno Ubuntu i njegovi derivati, obično onemogućuju izravnu prijavu. Stoga nije uobičajeno prijaviti se kao root, već povremeno povećati privilegije pomoću `sudo` ili grafičkog programa koji traži lozinku. Ako želimo da ikona pokretača pokreće aplikaciju s tim privilegijama, morat ćemo izmijeniti naredbu koju izvršava ili stvoriti poseban pokretač.

Što zapravo znači pokrenuti nešto kao root?

Radna stanica za administraciju sustava s više monitora koji prikazuju Linux terminale.

U Linuxu, root je račun s UID-om 0 i neograničenim privilegijama . Može čitati, mijenjati ili brisati bilo koju datoteku, instalirati softver, mijenjati konfiguracije kernela i kontrolirati procese koji pripadaju bilo kojem korisniku. To ga čini nevjerojatno moćnim alatom, ali i ogromnim rizikom ako se koristi neoprezno. Jednostavna tipografska greška s `rm` ili `mv` može učiniti sustav neupotrebljivim, a zlonamjerni skript izvršen kao root može instalirati stražnja vrata, mijenjati sigurnosne mjere ili ukrasti podatke praktički bez traga.

U Ubuntuu, root račun nema zadanu lozinku i izravna prijava nije dopuštena. Filozofija je da radite sa svojim uobičajenim korisničkim računom i koristite `sudo` za određene zadatke . `sudo` u biti znači pokretanje naredbe kao drugi korisnik, obično root, nakon autentifikacije s vlastitom lozinkom ako pripadate `sudo` grupi. To ograničava vrijeme koliko ste izloženi i vodi evidenciju o tome tko je što učinio.

Međutim, u vrlo specifičnim situacijama, poput oporavka oštećenog sustava, rada u ograničenim okruženjima ili konfiguriranja usluga koje zahtijevaju trajni pristup, možete razmotriti privremeno omogućavanje root pristupa. Opća preporuka je da ga ponovno onemogućite čim se ukaže potreba. Što manje vremena provedete kao root, to je bolje za stabilnost i sigurnost računala.

Rizici korištenja roota bez opreza

Jedna od najočitijih opasnosti je slučajno brisanje vitalnih datoteka . Kao root, nema ograničenja dopuštenja; naredba poput `sudo rm -rf /` može izbrisati sustav bez upozorenja. Također obično ne postoji koš za smeće za ova brisanja, pa oporavak može zahtijevati složene forenzičke alate ili čak potpunu ponovnu instalaciju sustava.

Drugi rizik je pokretanje nepouzdanih skripti. Ako pokrenete kod preuzet s bilo koje stranice s povišenim privilegijama, u biti mu dajete ključeve svoje kuće . Čak i ako se skripta čini bezopasnom, mogla bi sadržavati destruktivne upute ili instalirati zlonamjerni softver s root privilegijama. Stoga je preporučljivo pregledati kod, koristiti službene izvore, provjeriti kontrolne zbrojeve i testirati ga u virtualnom stroju ili kontejneru prije pokretanja u produkciji.

  Linux zakrpe za RAS podršku na Qualcomm platformama

Također postoji problem s sljedivošću. Kada koristite `sudo`, sustav zapisuje naredbu, korisnika koji ju je izdao i vrijeme do `/var/log/auth.log`, `/var/log/secure` ili `journalctl` . Ako se prijavite izravno kao root, sve se pojavljuje kao root i gubite mogućnost da znate koja je osoba napravila svaku promjenu. U okruženjima s više administratora ili ISO 27001, PCI DSS ili drugim revizijskim standardima, ovaj nedostatak sljedivosti je značajna slabost.

Načini dobivanja privilegija iz terminala

Detalj snimke zaslona Ubuntu terminala koji prikazuje sistemske zapisnike i praćenje procesa.

Najčešći i preporučeni način je staviti `sudo` ispred određene naredbe. Na primjer, za ažuriranje paketa, ponovno pokretanje usluge ili uređivanje zaštićene datoteke, `sudo` će tražiti vašu korisničku lozinku, a ne root lozinku, i nakon što vas autentificira, izvršit će naredbu s povišenim privilegijama. Ako je trebate pokrenuti kao drugi korisnik, možete koristiti `sudo -u username command` . A ako shvatite da ste zaboravili koristiti `sudo`, možete ponoviti posljednju naredbu s `sudo!! `.

Kada ćete obavljati nekoliko administrativnih zadataka zaredom, može biti zgodno otvoriti privremenu root ljusku. `sudo -i` simulira punu root prijavu, učitava root okruženje i smješta vas u početni direktorij. `sudo su` ili `sudo su -` također rade, iako je `sudo -i` obično pouzdaniji. Za izlaz iz ove sesije jednostavno upišite `exit`. Nije preporučljivo ostavljati root ljusku otvorenu bez nadzora.

S druge strane, naredba `su` mijenja korisnike. `su - root` ili jednostavno `su -` također usvaja varijable okruženja ciljnog korisnika, dok `su root` ili `su` bez crtice zadržava dio prethodnog okruženja. Ova razlika objašnjava pogreške poput `command not found`: administratorske naredbe obično se nalaze u `/usr/local/sbin`, `/usr/sbin` i `/sbin`, putanjama koje se ne pojavljuju uvijek u PATH-u običnog korisnika. Ako koristite `su` bez crtice, morat ćete upisati punu putanju ili prebaciti na `su -` da biste naslijedili korijenski PATH.

Ako želite omogućiti lozinku za root-a, to možete učiniti s `sudo passwd root` . Ubuntu to ne obeshrabruje, ali tehnički dopušta root-u da ima lozinku. Za zaključavanje računa upotrijebite `sudo passwd -l root` , a za otključavanje upotrijebite `sudo passwd -u root`. U SSH-u, izravni root pristup kontrolira se pomoću `PermitRootLogin` u `/etc/ssh/sshd_config`. Najsigurnije je postaviti na `no` ili, najviše, `prohibit-password` kako bi se dopustile samo SSH lozinke. Nakon toga morate ponovno pokrenuti SSH uslugu.

Precizno konfigurirajte džempere

Datoteka `/etc/sudoers` definira tko može koristiti `sudo` i u koju svrhu. Najbolje ju je ne uređivati ​​ručno; ispravan pristup je korištenje `sudo visudo` , koji zaključava datoteku i provjerava sintaksu prije spremanja. Osnovno pravilo ima oblik `host user=(target_user)`. Na primjer, `bob ALL=(ALL) ALL` omogućuje `bobu` da izvrši bilo koju naredbu kao root na bilo kojem računalu. Mogu se koristiti i grupe, kao što je `%admin ALL=(ALL) ALL`.

  Liquorix kernel u Linuxu: optimiziran kernel za desktop i igranje

Za dodjelu preciznijih dozvola koriste se aliasi. `User_Alias ​​​​ADMINS = alice, bob` grupira korisnike, a `Cmnd_Alias ​​​​LOCATE = /usr/sbin/updatedb` grupira naredbe. Zatim se koristi `ADMINS ALL = LOCATE` tako da ti korisnici mogu izvršavati samo te naredbe. Aliasi poput `NETWORKING` mogu se stvoriti za naredbe kao što su `route`, `ifconfig`, `ping`, `iptables` itd. Ovo primjenjuje princip najmanjih privilegija bez dodjeljivanja punog root pristupa bilo kome.

Opcija NOPASSWD omogućuje vam pokretanje određenih naredbi bez lozinke, na primjer, `pi ALL=(ALL)`. NOPASSWD: ALL. Ovo je praktično, ali opasno ako se zloupotrijebi. Nadalje, svaka upotreba naredbe `sudo` se bilježi, što pomaže u reviziji pristupa i rješavanju problema. Ako nešto pokvari, pregled ovih zapisnika može ukazati na to koja je nedavna promjena uzrokovala kvar.

Pokretanje grafičkih aplikacija kao root iz pokretača

Prikaz Linux terminala koji prikazuje popis datoteka korijenskog direktorija /.

Za programe s grafičkim sučeljem, jednostavno korištenje naredbe `sudo` obično ne funkcionira dobro jer nema terminala koji bi tražio lozinku. Tu dolaze do izražaja grafički pomagači . U KDE-u postoji `kdesu` : ako znate koja naredba pokreće aplikaciju, možete pokrenuti `kdesu that_command`. Opcija `Run Command` u KDE izborniku također vam omogućuje pokretanje aplikacije kao drugi korisnik unosom njihovih vjerodajnica. U GNOME i GTK okruženjima , `gksu` i `gksudo` bili su široko korišteni ; to su sučelja za `sudo` ili `su`. Na primjer, `gksu synaptic` ili `gksudo gparted` otvaraju aplikaciju i traže lozinku.

U modernim sustavima, gksu se ili ne preporučuje ili je zastario. Njegova uobičajena alternativa je pkexec , temeljen na PolicyKitu, koji omogućuje programima pokretanje s privilegijama prema definiranim pravilima. Mnogi trenutni programi za pokretanje koriste pkexec za administrativne zadatke. Ideja je ista: korisnik ne mora otvoriti terminal, već sustav provjerava autorizaciju na kontroliran način.

Za stvaranje prečaca u pokretaču, uređujete .desktop datoteku . Ključ je redak `Exec`. Ako želite da se pokreće kao root, možete koristiti nešto poput `Exec=gksu /put/do/programa`, `Exec=kdesu /put/do/programa` ili `Exec=pkexec /put/do/programa`. Ako izravno koristite `sudo`, trebat će vam da pokretač ima `Terminal=true` ili konfigurirati grafički askpass. Također možete pokušati pritisnuti Alt+F2 i upisati pomoćnu naredbu i naziv programa, na primjer, `gksu synaptic`. U KDE-u, `kdesu synaptic` ili opcija pokretanja kao drugi korisnik obavlja sličnu funkciju.

Postoji klasična alternativa pod nazivom consolehelper , omotač za GUI aplikacije. Stvara se simbolička veza, na primjer, /usr/bin/xterm-root koja pokazuje na /usr/sbin/consolehelper. Zatim se konfigurira PAM stvaranjem /etc/pam.d/xterm-root s uključivanjima auth, account i session iz config-util. Zatim se definira /etc/security/console.apps/xterm-root s USER=root i PROGRAM=/usr/bin/xterm. Kada se pokrene xterm-root, consolehelper traži PAM autentifikaciju i pokreće xterm kao root. Ako naiđete na grešku "Xlib connection to :0.0 refused by server", pokretanje xhost local:root moglo bi pomoći.

U svakom slučaju, otvaranje grafičkih aplikacija kao root ima nedostatke: miješa varijable okruženja, može prekinuti sabirnicu sesije, utjecati na Wayland ili X11 i stvarati datoteke u vlasništvu roota u vašem početnom direktoriju. Najbolje ga je koristiti samo za određene administratorske alate i zatvoriti ih čim završite. Nemojte pregledavati internet ili otvarati sumnjive dokumente kao root , jer bi svaki iskorištavajući program naslijedio pune privilegije.

Uobičajeni primjeri zadataka koji zahtijevaju root pristup

Mnoge svakodnevne operacije zahtijevaju povišene privilegije. Upravljanje paketima pomoću apt, zypper, dnf ili yum često zahtijeva sudo. Na primjer, `sudo apt update` , `sudo apt install firefox` ili `sudo zypper install docker-ce`. Isto vrijedi i za sistemske usluge: `sudo systemctl restart apache2`, `sudo systemctl restart ssh` ili `sudo systemctl restart nginx`. Za izmjenu korisničkih računa koristite `sudo usermod`, a za promjenu vlasništva nad datotekama koristite `sudo chown`. Uređivanje kritičnih konfiguracija, kao što je `/etc/ssh/sshd_config`, također zahtijeva root privilegije ako se izvodi pomoću nano, vim ili gedit.

  Kako popraviti GRUB bez LiveCD-a korak po korak

Ne trebate `sudo` za naredbe koje samo čitaju informacije ili ne mijenjaju sustav, kao što su `zypper repos` ili `systemctl status NetworkManager`. Korištenje `sudo` za sve iz navike je loša praksa. Razumno je povećati privilegije samo kada zadatak to zahtijeva , a zatim se što prije vratiti na normalnog korisnika.

Najbolje prakse pri radu s povišenim privilegijama

Krupni plan serverskog ormara s plavim osvjetljenjem u podatkovnom centru.

Načelo najmanjih privilegija trebalo bi voditi sve. Koristite `sudo` za pojedinačne naredbe kad god je to moguće, izbjegavajte trajne root ljuske osim ako nije apsolutno potrebno i izađite čim završite. Nemojte pokretati skripte iz nepoznatih izvora kao root; prethodno pregledajte kod, preuzmite iz službenih repozitorija ili renomiranih projekata, provjerite kontrolne zbrojeve i testirajte u izoliranom okruženju ako imate bilo kakvih nedoumica. Zdrava doza skepticizma je vrlina kada se radi s kodom treće strane koji ima pune privilegije.

Također je preporučljivo granularno konfigurirati sudoere, ne oslanjajući se isključivo na sudo grupu za sve, te provoditi reviziju zapisnika. Ako administrirate poslužitelje, provjerite `/var/log/auth.log`, `/var/log/secure` ili `journalctl -xe` kako biste otkrili zlouporabu. U okruženjima s više korisnika, poznavanje tko je izvršio svaku naredbu ključno je za odgovornost i usklađenost sa sigurnosnim propisima.

Omogućite i onemogućite root s glavom

Ako odlučite omogućiti root pristup, dodijelite lozinku s `sudo passwd root`, koristite je samo za bitne zadatke, a zatim ponovno zaključajte račun. Da biste onemogućili izravnu SSH prijavu, uredite `sshd_config` i postavite `PermitRootLogin no` ili `prohibit-password`, a zatim ponovno pokrenite SSH. Da biste lokalno zaključali račun, upotrijebite `sudo passwd -l root`. Da biste ga otključali, upotrijebite `sudo passwd -u root`. Ove mjere smanjuju površinu napada i sprječavaju napade grubom silom protiv najmoćnijeg računa.

U većini slučajeva, praktičan odgovor na početno pitanje je da: program možete pokrenuti iz pokretača s root privilegijama pomoću grafičkog pomoćnika poput kdesu, gksu, gksudo ili pkexec ili stvaranjem .desktop datoteke odgovarajućom naredbom. Međutim, ovo nije nešto što biste trebali ostaviti postavljeno za bilo koju aplikaciju. Bolje je imati posebne administratorske pokretače s jasnim nazivima i koristiti ih samo kada je to potrebno.

Ključna stvar je da root nije igračka, a sudo postoji upravo kako bi vas osnažio bez pretvaranja svakog klika u trajni rizik. Ako trebate pokrenuti grafičku aplikaciju kao superkorisnik, dajte prioritet pomoćnim programima koji zahtijevaju lozinku, provjerite je li aplikaciji zaista potrebna i ograničite njezinu upotrebu na administratorske zadatke. Na taj način uživate u praktičnosti pokretača bez žrtvovanja sigurnosti koja Linux čini tako jakim.