Paano magpatakbo ng mga programa bilang root mula sa launcher sa Linux

Huling pag-update: 15 Oktubre 2026
May-akda: TecnoDigital
  • Nag-aalok ang Root ng ganap na kontrol, ngunit pinapanatili itong hindi pinagana ng Ubuntu at iba pang mga distribusyon bilang default upang mabawasan ang mga panganib.
  • Pinapayagan ka ng Sudo na itaas ang mga pribilehiyo sa bawat kaso at pinapanatili ang talaan kung sino ang nagsasagawa ng bawat utos.
  • Para sa mga aplikasyong grapiko, may mga katulong tulad ng kdesu, gksu, gksudo, o pkexec, na maaaring gamitin sa mga .desktop launcher.
  • Ang seguridad ay nakasalalay sa paggamit ng pinakamababang pribilehiyo, pag-iwas sa mga hindi mapagkakatiwalaang script, at pag-audit sa mataas na access.

System engineer na namamahala sa mga server sa isang modernong data center.

Sa Windows, maraming tao ang sanay na pindutin ang Shift+Enter o Shift+left-click para magbukas ng programang may mataas na pribilehiyo mula sa Start menu. Sa Linux, hindi ito laging madali, dahil ang seguridad ay nakasalalay sa root, sudo, at graphical helpers , at ang bawat desktop environment ay may kanya-kanyang tool. Gayunpaman, may mga medyo simpleng paraan para maglunsad ng mga application bilang root mula sa isang launcher, shortcut, o applications menu, bagama't mahalagang maunawaan kung ano ang kinakailangan nito.

Ang susi ay ang root user ang may ganap na kontrol sa sistema , at ang mga modernong distribusyon, lalo na ang Ubuntu at mga derivatives nito, ay karaniwang hindi pinapagana ang direktang pag-login. Samakatuwid, hindi karaniwan ang pag-log in bilang root, ngunit sa halip ay paminsan-minsang magtataas ng mga pribilehiyo gamit ang `sudo` o isang graphical program na nagpo-prompt para sa password. Kung gusto natin ng isang launcher icon para ilunsad ang isang app na may mga pribilehiyong iyon, kailangan nating baguhin ang command na isinasagawa nito o lumikha ng isang partikular na launcher.

Ano nga ba talaga ang ibig sabihin ng pagpapatakbo ng isang bagay bilang ugat?

Workstation ng pangangasiwa ng sistema na may maraming monitor na nagpapakita ng mga terminal ng Linux.

Sa Linux, ang root ay ang account na may UID 0 at walang limitasyong mga pribilehiyo . Maaari nitong basahin, baguhin, o burahin ang anumang file, mag-install ng software, baguhin ang mga configuration ng kernel, at kontrolin ang mga prosesong pagmamay-ari ng sinumang user. Ginagawa nitong isang napakalakas na tool, ngunit isa ring malaking panganib kung gagamitin nang pabaya. Ang isang simpleng typo na may `rm` o `mv` ay maaaring maging dahilan upang hindi magamit ang system, at ang isang malisyosong script na isinagawa bilang root ay maaaring mag-install ng mga backdoor, magbago ng mga hakbang sa seguridad, o magnakaw ng data nang halos walang bakas.

Sa Ubuntu, ang root account ay walang default na password at hindi pinapayagan ang direktang pag-login. Ang pilosopiya ay gumagamit ka ng iyong regular na user account at ginagamit ang `sudo` para sa mga partikular na gawain . Ang `sudo` ay mahalagang nangangahulugang pagpapatakbo ng isang command bilang isa pang user, kadalasang root, pagkatapos mag-authenticate gamit ang sarili mong password kung kabilang ka sa grupong `sudo`. Nililimitahan nito ang oras na na-expose ka at pinapanatili ang talaan kung sino ang gumawa ng ano.

Gayunpaman, sa mga partikular na sitwasyon, tulad ng pag-recover ng sirang sistema, pagtatrabaho sa mga pinaghihigpitang kapaligiran, o pag-configure ng mga serbisyo na nangangailangan ng patuloy na pag-access, maaari mong isaalang-alang ang pansamantalang pag-enable ng root. Ang pangkalahatang rekomendasyon ay i-disable ito muli sa sandaling kailanganin. Kung mas kaunting oras ang ginugugol mo bilang root, mas mabuti para sa katatagan at seguridad ng makina.

Mga panganib ng paggamit ng root nang walang pag-iingat

Isa sa mga pinakahalatang panganib ay ang hindi sinasadyang pagbura ng mahahalagang file . Bilang root, walang mga paghihigpit sa pahintulot; ang isang utos tulad ng `sudo rm -rf /` ay maaaring magbura ng system nang walang babala. Karaniwan ding walang recycle bin para sa mga pagburang ito, kaya ang pagbawi ay maaaring mangailangan ng mga kumplikadong forensic tool o kahit isang kumpletong muling pag-install ng system.

Isa pang panganib ay ang pagpapatakbo ng mga hindi mapagkakatiwalaang script. Kung magpapatakbo ka ng code na na-download mula sa anumang site na may mataas na pribilehiyo, para mo na ring ibinibigay dito ang mga susi ng iyong bahay . Kahit na tila hindi nakakapinsala ang script, maaari itong maglaman ng mga mapanirang tagubilin o mag-install ng malware na may mga pribilehiyo sa root. Samakatuwid, ipinapayong suriin ang code, gumamit ng mga opisyal na mapagkukunan, suriin ang mga checksum, at subukan ito sa isang virtual machine o container bago ito patakbuhin sa produksyon.

  Mga patch ng Linux para sa suporta ng RAS sa mga platform ng Qualcomm

Mayroon ding isyu sa traceability. Kapag ginamit mo ang `sudo`, itinatala ng system ang command, ang user na nag-isyu nito, at ang oras para sa `/var/log/auth.log`, `/var/log/secure`, o `journalctl` . Kung direktang magla-log in ka bilang root, lahat ay lilitaw bilang root, at mawawalan ka ng kakayahang malaman kung aling indibidwal ang gumawa ng bawat pagbabago. Sa mga kapaligirang may maraming administrator o ISO 27001, PCI DSS, o iba pang mga pamantayan sa pag-awdit, ang kakulangan ng traceability na ito ay isang malaking kahinaan.

Mga paraan upang makakuha ng mga pribilehiyo mula sa terminal

Detalye ng screenshot ng mga terminal ng Ubuntu na nagpapakita ng mga log ng system at pagsubaybay sa proseso.

Ang pinakakaraniwan at inirerekomendang paraan ay ang pag-una sa isang partikular na utos gamit ang `sudo`. Halimbawa, para mag-update ng mga pakete, mag-restart ng serbisyo, o mag-edit ng protektadong file, hihingin ng `sudo` ang password ng iyong user, hindi ang root password, at pagkatapos kang ma-authenticate, isasagawa nito ang utos na may mas mataas na pribilehiyo. Kung kailangan mo itong patakbuhin bilang ibang user, maaari mong gamitin ang `sudo -u username command` . At kung napansin mong nakalimutan mong gamitin ang `sudo`, maaari mong ulitin ang huling utos gamit ang `sudo !! `.

Kapag gagawa ka ng ilang magkakasunod na gawaing administratibo, maaaring maging maginhawa ang magbukas ng pansamantalang root shell. Ginagaya ng `sudo -i` ang isang buong root login, nilo-load ang root environment, at inilalagay ka sa home directory. Gumagana rin ang `sudo su` o `sudo su -` , bagama't karaniwang mas maaasahan ang `sudo -i`. Para lumabas sa session na ito, i-type lamang ang `exit`. Hindi ipinapayong iwanang bukas ang root shell nang walang nagbabantay.

Sa kabilang banda, ang utos na `su` ay nagpapalit ng mga user. Ang `su - root` o simpleng `su -` ay gumagamit din ng mga environment variable ng target na user, habang ang `su root` o `su` na walang gitling ay nagpapanatili ng bahagi ng nakaraang environment. Ang pagkakaibang ito ay nagpapaliwanag ng mga error tulad ng `command not found`: ang mga administrative command ay karaniwang matatagpuan sa `/usr/local/sbin`, `/usr/sbin`, at `/sbin`, mga path na hindi laging lumalabas sa PATH ng isang regular na user. Kung gagamit ka ng `su` nang walang gitling, kakailanganin mong i-type ang buong path o lumipat sa `su -` para magmana ng root PATH.

Kung gusto mong paganahin ang password para sa root, magagawa mo ito gamit ang `sudo passwd root` . Hindi ito hinihikayat ng Ubuntu, ngunit teknikal na pinapayagan ang root na magkaroon ng password. Para i-lock ang account, gamitin ang `sudo passwd -l root` , at para i-unlock ito, gamitin ang `sudo passwd -u root`. Sa SSH, ang direktang root access ay kinokontrol ng `PermitRootLogin` sa `/etc/ssh/sshd_config`. Pinakamaligtas na panatilihin itong nakatakda sa `no` o, sa pinakamarami, `prohibit-password` para payagan lamang ang mga SSH password. Pagkatapos, kailangan mong i-restart ang serbisyo ng SSH.

I-configure nang wasto ang mga sweater

Tinutukoy ng file na `/etc/sudoers` kung sino ang maaaring gumamit ng `sudo` at para sa anong layunin. Pinakamainam na huwag itong i-edit nang manu-mano; ang tamang paraan ay ang paggamit ng `sudo visudo` , na siyang nagla-lock sa file at sumusuri sa syntax bago i-save. Ang pangunahing tuntunin ay may anyong `host user=(target_user)`. Halimbawa, ang `bob ALL=(ALL) ALL` ay nagbibigay-daan sa `bob` na isagawa ang anumang command bilang root sa anumang makina. Maaari ring gamitin ang mga group, tulad ng `%admin ALL=(ALL) ALL`.

  Liquorix kernel sa Linux: na-optimize na kernel para sa desktop at paglalaro

Para magbigay ng mas detalyadong mga pahintulot, ginagamit ang mga alias. `User_Alias ​​​​ADMINS = alice, bob` ay nagpapangkat ng mga user, at `Cmnd_Alias ​​​​LOCATE = /usr/sbin/updatedb` ay nagpapangkat ng mga utos. Pagkatapos, ginagamit ang `ADMINS ALL = LOCATE` upang ang mga user na iyon lamang ang makapagsagawa ng mga utos na iyon. Ang mga alias tulad ng `NETWORKING` ay maaaring malikha para sa mga utos tulad ng `route`, `ifconfig`, `ping`, `iptables`, atbp. Isinasagawa nito ang prinsipyo ng least privilege nang hindi binibigyan ng ganap na root access ang sinuman.

Ang opsyong NOPASSWD ay nagbibigay-daan sa iyong magpatakbo ng ilang partikular na utos nang walang password, halimbawa, `pi ALL=(ALL)`. NOPASSWD: ALL. Ito ay maginhawa, ngunit mapanganib kung aabusuhin. Bukod pa rito, ang bawat paggamit ng `sudo` ay naka-log, na nakakatulong sa pag-audit ng access at pag-troubleshoot ng mga problema. Kung may masira, ang pagsusuri sa mga log na ito ay maaaring magpahiwatig kung aling kamakailang pagbabago ang sanhi ng pagkabigo.

Paglulunsad ng mga graphical na application bilang root mula sa launcher

Tanawin ng isang Linux terminal na nagpapakita ng listahan ng file ng root directory na /.

Para sa mga programang may graphical interface, ang simpleng paggamit ng `sudo` ay karaniwang hindi gumagana nang maayos dahil walang terminal para i-prompt ang password. Dito pumapasok ang mga graphical helper . Sa KDE, mayroong `kdesu` : kung alam mo kung aling command ang naglulunsad ng application, maaari mong patakbuhin ang `kdesu that_command`. Ang opsyong `Run Command` sa menu ng KDE ay nagbibigay-daan din sa iyong maglunsad ng application bilang isa pang user sa pamamagitan ng pagpasok ng kanilang mga credential. Sa mga kapaligirang GNOME at GTK , malawakang ginamit ang `gksu` at `gksudo` ; ito ang mga frontend para sa `sudo` o `su`. Halimbawa, kapag binuksan ang `gksu synaptic` o `gksudo gparted`, buksan ang app at hingin ang password.

Sa mga modernong sistema, ang gksu ay hindi na inirerekomenda o hindi na ginagamit. Ang karaniwang alternatibo nito ay ang pkexec , batay sa PolicyKit, na nagpapahintulot sa mga programa na tumakbo nang may mga pribilehiyo ayon sa mga tinukoy na patakaran. Maraming kasalukuyang launcher ang gumagamit ng pkexec para sa mga gawaing administratibo. Pareho lang ang ideya: hindi kailangang magbukas ng terminal ang user, ngunit pinapatunayan ng system ang awtorisasyon sa isang kontroladong paraan.

Para gumawa ng shortcut sa launcher, ie-edit mo ang .desktop file . Ang linyang `Exec` ang susi. Kung gusto mong tumakbo ito bilang root, puwede mong gamitin ang tulad ng `Exec=gksu /path/to/program`, `Exec=kdesu /path/to/program`, o `Exec=pkexec /path/to/program`. Kung direktang gagamitin mo ang `sudo`, kakailanganin mong magkaroon ng `Terminal=true` ang launcher o mag-configure ng graphical askpass. Maaari mo ring subukang pindutin ang Alt+F2 at i-type ang helper at ang pangalan ng program, halimbawa, `gksu synaptic`. Sa KDE, ang `kdesu synaptic` o ang opsyong tumakbo bilang ibang user ay gumaganap ng katulad na function.

Mayroong isang klasikong alternatibo na tinatawag na consolehelper , isang wrapper para sa mga GUI application. Gumagawa ka ng isang simbolikong link, halimbawa, /usr/bin/xterm-root na nakaturo sa /usr/sbin/consolehelper. Pagkatapos ay iko-configure mo ang PAM sa pamamagitan ng paglikha ng /etc/pam.d/xterm-root gamit ang mga auth, account, at session inclusion mula sa config-util. Susunod, tutukuyin mo ang /etc/security/console.apps/xterm-root gamit ang USER=root at PROGRAM=/usr/bin/xterm. Kapag pinatakbo mo ang xterm-root, hihingi ang consolehelper ng PAM authentication at ilulunsad ang xterm bilang root. Kung makatagpo ka ng error na "Xlib connection to :0.0 refused by server", maaaring makatulong ang pagpapatakbo ng xhost local:root.

Sa anumang kaso, ang pagbubukas ng mga graphical application bilang root ay may mga disbentaha: pinaghahalo nito ang mga environment variable, maaaring masira ang session bus, makaapekto sa Wayland o X11, at lumikha ng mga root-owned file sa iyong home directory. Pinakamainam na gamitin lamang ito para sa mga partikular na administrative tool at isara ang mga ito sa sandaling matapos ka. Huwag mag-browse sa internet o magbukas ng mga kahina-hinalang dokumento bilang root , dahil ang anumang exploit ay magmamana ng buong pribilehiyo.

Mga karaniwang halimbawa ng mga gawain na nangangailangan ng root access

Maraming pang-araw-araw na operasyon ang nangangailangan ng matataas na pribilehiyo. Ang pamamahala ng mga pakete gamit ang apt, zypper, dnf, o yum ay kadalasang nangangailangan ng sudo. Halimbawa, `sudo apt update` , `sudo apt install firefox`, o `sudo zypper install docker-ce`. Ganito rin ang naaangkop sa mga serbisyo ng system: `sudo systemctl restart apache2`, `sudo systemctl restart ssh`, o `sudo systemctl restart nginx`. Para baguhin ang mga user account, gamitin ang `sudo usermod`, at para baguhin ang pagmamay-ari ng file, gamitin ang `sudo chown`. Ang pag-eedit ng mga kritikal na configuration, tulad ng `/etc/ssh/sshd_config`, ay nangangailangan din ng mga root privilege kung gagawin gamit ang nano, vim, o gedit.

  Paano ayusin ang GRUB nang walang LiveCD nang sunud-sunod

Hindi mo kailangan ang `sudo` para sa mga utos na nagbabasa lamang ng impormasyon o hindi nagbabago sa sistema, tulad ng `zypper repos` o `systemctl status NetworkManager`. Hindi magandang gawain ang paggamit ng `sudo` para sa lahat ng bagay dahil sa nakagawian. Ang makatuwirang gawin ay itaas lamang ang mga pribilehiyo kapag kinakailangan ito ng gawain at pagkatapos ay bumalik sa normal na gumagamit sa lalong madaling panahon.

Mga pinakamahusay na kasanayan kapag nagtatrabaho nang may mataas na pribilehiyo

Malapitang pagtingin sa isang server rack na may asul na ilaw sa loob ng isang data center.

Ang prinsipyo ng least privilege ang dapat gumabay sa lahat. Gamitin ang `sudo` para sa mga indibidwal na command hangga't maaari, iwasan ang mga persistent root shell maliban kung talagang kinakailangan, at lumabas agad pagkatapos mong matapos. Huwag magpatakbo ng mga script mula sa mga hindi kilalang source bilang root; suriin muna ang code, mag-download mula sa mga opisyal na repository o mga kagalang-galang na proyekto, i-verify ang mga checksum, at subukan sa isang nakahiwalay na kapaligiran kung mayroon kang anumang mga pagdududa. Ang isang malusog na dosis ng pag-aalinlangan ay isang birtud kapag nakikitungo sa third-party code na may ganap na mga pribilehiyo.

Maipapayo rin na i-configure nang detalyado ang mga sudoer, hindi lamang umaasa sa sudo group para sa lahat ng bagay, at panatilihing na-audit ang mga log. Kung ikaw ang namamahala sa mga server, tingnan ang `/var/log/auth.log`, `/var/log/secure`, o `journalctl -xe` upang matukoy ang maling paggamit. Sa mga multi-user na kapaligiran, ang pag-alam kung sino ang nagsagawa ng bawat command ay mahalaga para sa pananagutan at pagsunod sa mga regulasyon sa seguridad.

Paganahin at huwag paganahin ang root gamit ang isang head

Kung magpasya kang paganahin ang root access, magtalaga ng password na may `sudo passwd root`, gamitin lamang ito para sa mga mahahalagang gawain, at pagkatapos ay i-lock muli ang account. Para i-disable ang direktang SSH login, i-edit ang `sshd_config` at itakda ang `PermitRootLogin no` o `prohibit-password`, pagkatapos ay i-restart ang SSH. Para i-lock ang account nang lokal, gamitin ang `sudo passwd -l root`. Para i-unlock ito, gamitin ang `sudo passwd -u root`. Binabawasan ng mga hakbang na ito ang surface ng pag-atake at pinipigilan ang mga brute-force na pag-atake laban sa pinakamalakas na account.

Sa karamihan ng mga kaso, ang praktikal na sagot sa unang tanong ay oo: maaari kang maglunsad ng isang programa mula sa launcher na may mga pribilehiyo sa root gamit ang isang graphical helper tulad ng kdesu, gksu, gksudo, o pkexec, o sa pamamagitan ng paglikha ng isang .desktop file gamit ang naaangkop na utos. Gayunpaman, hindi ito isang bagay na dapat mong iwanang naka-set up para sa anumang application. Mas mainam na magkaroon ng mga partikular na administrative launcher na may malinaw na mga pangalan at gamitin lamang ang mga ito kung kinakailangan.

Ang mahalagang punto ay ang root ay hindi laruan, at ang sudo ay umiiral upang bigyang-kapangyarihan ka nang hindi ginagawang permanenteng panganib ang bawat pag-click. Kung kailangan mong maglunsad ng graphical app bilang isang superuser, unahin ang mga helper na nangangailangan ng password, i-verify na talagang kailangan ito ng application, at limitahan ang paggamit nito sa mga gawaing administratibo. Sa ganitong paraan, masisiyahan ka sa kaginhawahan ng launcher nang hindi isinasakripisyo ang seguridad na nagpapatibay sa Linux.