Drejto si rrënjë. Përdorimi i sudo në Ubuntu për fillestarët

03.05.2023

Komanda sudo është shumë e rëndësishme për menaxhimin e të drejtave të aksesit në sistemi operativ Linux. Falë kësaj komande të vogël, ju mund t'u jepni përdoruesve të tjerë leje për të kryer veprime të caktuara në emër të administratorit, pa u dhënë atyre vetë fjalëkalimin e superpërdoruesit. Gjithashtu, nuk duhet të uleni gjithmonë poshtë llogari superpërdorues për të kryer herë pas here veprime administrative.

Duket se një ekip kaq i vogël, me një minimum aftësish dhe përdorimin më të thjeshtë të mundshëm, por në fakt mund të bëjë shumë më tepër. Në këtë artikull do të shikojmë se si sudo është konfiguruar në Linux për të kontrolluar aksesin në funksionet e sistemit dhe aftësitë e përdoruesit.

Përpara se të kalojmë në konfigurimin e aksesit në mjetin sudo, le të shohim se si funksionon. Ka dy mënyra për të fituar të drejtat e administratorit në Linux. Mund të kaloni te përdoruesi rrënjë duke përdorur komandën su, ose mund t'ia kaloni komandën e dëshiruar si parametër programit sudo, i cili do ta ekzekutojë atë me të drejtat e administratorit. Për më tepër, metoda e dytë është e preferueshme, sepse nuk do të harroni atë që po përdorni dhe nuk do të bëni asgjë të panevojshme.

Emri i ekipit do të thotë përdoruesi zëvendësues do ose super përdorues bëjnë. Shërbimi ju lejon të ekzekutoni programe si një përdorues tjetër, por më shpesh si përdorues rrënjë. Shërbimi u zhvillua në vitin 1980 nga Bob Cogshell dhe Cliff Spencer. Gjatë kësaj kohe, shumë zhvillues kanë ndryshuar dhe shumë veçori janë shtuar.

sudo funksionon falë flamurit të aksesit SUID. Nëse ky flamur është vendosur për një program, atëherë ai nuk ekzekutohet në emër të përdoruesit që e ka nisur, por në emër të pronarit, duke qenë se skedari është në pronësi të sudo, atëherë programi ekzekutohet si rrënjë. Më pas lexon cilësimet e tij, kërkon fjalëkalimin e përdoruesit dhe vendos nëse përdoruesi mund të lejohet të ekzekutojë komanda si administrator. Nëse po, atëherë komanda e kaluar në parametër ekzekutohet.

Tani që e dini teorinë, le të shohim se si të konfigurojmë sudo në Linux.

Konfigurimi i sudo në Linux

Të gjitha cilësimet sudo janë të vendosura në skedarin /etc/sudores. Këtu mund të konfiguroni shumë parametra, duke filluar nga kush do të lejohet të ekzekutojë komanda në emër të superpërdoruesit dhe duke përfunduar me kufizimin e grupit të komandave të disponueshme.

Për të hapur një skedar për redaktim, shkruani komandën e mëposhtme si superpërdorues:

Ju gjithashtu mund të specifikoni redaktuesin e tekstit në të cilin dëshironi të redaktoni skedarin e konfigurimit:

EDITOR=nano visudo

Më pas do të shikojmë cilësimet më interesante që mund të vendosni në këtë skedar. Por së pari, le të shohim sintaksën bazë të skedarit. Ai përbëhet nga dy lloje vargjesh, këto janë pseudonime që ju lejojnë të krijoni lista të përdoruesve dhe flamujve, si dhe vetë rregullat, të cilat specifikojnë se si do të sillet komanda sudo. Sintaksa e pseudonimit duket si kjo:

shkruani pseudonimin_emri = element1, element2, element3

Lloji specifikon se çfarë lloji i Alice duhet të krijohet, emri është emri që do të përdoret dhe lista e elementeve specifikon elementet që do të nënkuptohen kur i referohemi këtij emri.

Përshkrimi i lejeve të përdoruesit ka një sintaksë paksa të ndryshme:

hosti i përdoruesit = (përdoruesi_tjetër:grupi) ekipet

Përdoruesi specifikon përdoruesin ose grupin për të cilin po krijojmë rregullin, hosti është kompjuteri për të cilin do të zbatohet ky rregull. Një përdorues tjetër - nën maskën e cilit përdorues i pari mund të ekzekutojë komanda, dhe i fundit mund të ekzekutojë komandat e lejuara. Një pseudonim mund të përdoret në vend të cilitdo prej parametrave. Dhe tani vendosja e sudos në Debian dhe shpërndarje të tjera.

Cilësimet kryesore

Pseudonimi Defaults ju lejon të specifikoni parametrat standardë që shërbimi të funksionojë, ne do t'i shqyrtojmë ato në këtë seksion. Një pseudonim i tillë fillon me fjalën Defaults, e ndjekur nga emri i flamurit. Nëse ka një simbol ! përpara emrit, kjo do të thotë se flamuri duhet të ndizet; përndryshe, fikeni:

Çaktivizoni hyrjen herën e parë që e përdorni:

Default! leksion

Superpërdoruesi nuk mund të bëjë sudo:

Parazgjedhjet !root_sudo

Tani nëse provoni të ekzekutoni sudo sudo asgjë nuk do të funksionojë:

Ndryshoni direktorinë kryesore për përdoruesin e synuar, duke e lënë dosjen e përdoruesit aktual si direktoriumin kryesor si parazgjedhje:

Default set_home

Ruani listën e grupeve të përdoruesit aktual:

Parazgjedhjet !preserve_groups

Kërkoni fjalëkalimin e superpërdoruesit në vend të fjalëkalimit të përdoruesit:

Cakto numrin e përpjekjeve për fjalëkalimin përpara se sudo të përfundojë, parazgjedhja është 3:

Parazgjedhjet passwd_tries=5

Numri i minutave që do të kalojnë përpara se sudo të kërkojë përsëri një fjalëkalim është 5 si parazgjedhje. Nëse e vendosni vlerën në 0, ai gjithmonë do të kërkojë një fjalëkalim, pavarësisht se sa kohë më parë keni përdorur programin:

Parazgjedhja timestamp_timeout=10

Parametri i mëposhtëm specifikon numrin e minutave që sudo do të presë që një fjalëkalim të rishkruhet nëse ai është futur gabimisht:

Parazgjedhja passwd_timeout=10

Ju mund të ndryshoni mesazhin që shfaqet kur kërkohet një fjalëkalim:

Defaults passprompt="Fjalëkalimi juaj:"

Ju mund të specifikoni një përdorues tjetër, jo rrënjë, nga i cili do të ekzekutohen të gjitha komandat, për këtë përdorim:

Parazgjedhjet runas_default="përdoruesi"

Mund të regjistroni të gjitha përpjekjet për t'u lidhur me sudo:

Default logfile=/var/log/sudo

Pastaj ne përpiqemi të kontrollojmë funksionimin e regjistrit:

sudo cat /var/log/sudo

Këto ishin të gjitha cilësimet më interesante sudo që mund t'ju duhen, më pas do të shikojmë se si të caktojmë të drejtat e hyrjes sudo për përdoruesit.

Konfigurimi i përdoruesve sudo

Ne kemi diskutuar tashmë më lart sintaksën për vendosjen e veprimeve për përdoruesit; këtu gjithçka është më e ndërlikuar sesa me pseudonimet, por mund ta kuptoni. Për shembull, le të lejojmë çdo përdorues të përdorë sudo, nga çdo host dhe të ekzekutojë çdo komandë:

ALL ALL = (ALL) ALL

Një ekip i tillë është shumë i pasigurt, i lejon të gjithë dhe gjithçka. E para ALL është të lejojë të gjithë përdoruesit, ALL e dytë është për të gjithë hostet, ALL e tretë është për të lejuar hyrjen si çdo përdorues dhe e katërta është të lejojë që çdo komandë të ekzekutohet. Por një ndërtim tjetër përdoret shumë më shpesh:

%wheel ALL = (ALL) ALL

Do të thotë njësoj si ai i mëparshmi, vetëm këtu nuk i lejojmë të gjithë përdoruesit të përdorin sudo, por vetëm ata që janë anëtarë të grupit të rrotave.

%wheel ALL = (rrënjë) ALL

Këtu tashmë e kemi kufizuar zgjedhjen e mundshme të përdoruesve vetëm tek përdoruesi rrënjë. Ju gjithashtu mund të specifikoni grupin e përdoruesve në emër të të cilit ai mund të ekzekutojë komanda:

%wheel ALL = (root:admins) ALL

Kjo do të thotë që ju mund ta ekzekutoni komandën si root ose një përdorues tjetër nga grupi i administratorëve. Ne gjithashtu mund të specifikojmë komandat që përdoruesi mund të ekzekutojë. Për shembull:

%wheel ALL = (rrënja) /bin/mount, /bin/umount

Përdoruesi mund të ekzekutojë komandat mount dhe umount vetëm si superpërdorues. Tani le ta bëjmë atë edhe më interesante, përdoruesi mund të ekzekutojë montimin dhe bashkimin pa një fjalëkalim, dhe të gjitha komandat e tjera me një fjalëkalim:

%wheel ALL = (rrënjë) ALL
%wheel ALL = (root) NOPASSWD: /bin/mount, /bin/umount

Ju gjithashtu mund të kufizoni përdoruesit sipas hostit, për shembull, ne lejojmë përdorimin e sudo vetëm nga host1:

%wheel host1 = (rrënjë) ALL

Mbetet të shqyrtojmë se si të përdorim pseudonimet. Pseudonimet mund të jenë të llojeve të mëposhtme:

  • Përdoruesi_Alias- pseudonimet e përdoruesve që do të përdorin sudo;
  • Runas_Alias- pseudonimet e përdoruesve në emër të të cilëve do të ekzekutohen komandat;
  • Host_Alias- pseudonimi pritës;
  • Cmnd_Alias- pseudonimi i komandës;

Për shembull, le të krijojmë katër pseudonime dhe t'i përdorim ato në rregullin tonë:

User_Alias ​​Users = user1, user2, user3
Runas_Alias Admins = rrënjë, admin
Host_Alias Hosts = host1,host2
Cmd_Alias ​​Cmds = /bin/mount,/bin/umount

Përdoruesit Hosts = (Admins) Cmds

Kjo do të thotë që përdoruesit nga lista e përdoruesve do të jenë në gjendje të ekzekutojnë komandat Cmds në emër të përdoruesve të Amdins në hostet Hosts.

Kanë mbetur edhe pak fjalë për të thënë për flamujt. Flamuri NOPASSWD ju thotë të mos kërkoni një fjalëkalim kur ekzekutoni këtë rregull. Për shembull, për të lejuar të gjithë përdoruesit të ekzekutojnë komandën e montimit me sudo pa një fjalëkalim:

ALL ALL = (root) NOPASSWD: /bin/mount

Ju gjithashtu mund të parandaloni që kjo komandë e veçantë të ekzekutohet fare duke përdorur flamurin NOEXEC:

ALL ALL = (rrënjë) NOEXEC /bin/mount

Ju mund të kontrolloni nëse skedari /etc/sudores është konfiguruar saktë dhe të shihni të gjitha rregullat e krijuara duke përdorur komandën:

Këtu shfaqen të gjithë flamujt dhe cilësimet e instaluara, si dhe lejet e këtij përdoruesi.

konkluzionet

Në këtë artikull ne shikuam se si të konfiguroni sudo në Linux. Siç mund ta shihni, përkundër faktit se ky është një mjet shumë i thjeshtë, ai fsheh shumë cilësime të dobishme që mund t'i përdorni në sistemin tuaj. Nëse keni ndonjë pyetje, pyesni në komente!

Pak për vetë sudo, nga Wikipedia. sudo(anglisht) superpërdorues bëj , fjalë për fjalë “për të kryer në emër të superpërdorues") është një program i krijuar për të ndihmuar administratori i sistemit dhe duke ju lejuar të delegoni burime të caktuara të privilegjuara tek përdoruesit duke mbajtur një regjistër të punës. Ideja kryesore është t'u jepet përdoruesve sa më pak të drejta, por në të njëjtën kohë saktësisht aq sa janë të nevojshme për të zgjidhur detyrat e caktuara.

Komanda sudo lejon përdoruesit të ekzekutojnë komanda si përdorues rrënjë ose të tjerë. Rregullat që sudo përdor për të vendosur nëse do të japë akses janë në skedarin /etc/sudoers; Gjuha e shkrimit të tyre dhe shembujt e përdorimit përshkruhen në detaje në sudoers(5).

Për të redaktuar skedarin /etc/sudoers, duhet të përdorni programin visudo, i cili kontrollon sintaksën dhe në këtë mënyrë shmang gabimet në rregulla.

Në shumicën e rasteve, konfigurimi i duhur i sudo e bën ekzekutimin si superpërdorues të panevojshëm.

Si parazgjedhje, llogaria rrënjësore në Ubuntu është e çaktivizuar dhe root thjesht nuk ka një fjalëkalim. Të gjitha detyrat administrative kryhen përmes sudo. Si parazgjedhje, e drejta për të ekzekutuar sudo i jepet përdoruesit të parë të krijuar gjatë instalimit. Të gjithë të tjerët janë përdorues të rregullt si parazgjedhje.

Sudo është një mjet shumë fleksibël që ju lejon të konfiguroni të drejtat për të kryer veprime administrative për secilin përdorues veç e veç. Për shembull, lejo njërin të rinisë një server dhe t'i japë një tjetri mundësinë për të ndryshuar të drejtat e aksesit në skedarë dhe dosje. Hapni skedarin /etc/sudoers. Kjo mund të bëhet ose duke lëshuar një komandë për të hapur skedarin në të preferuarin tuaj redaktori i tekstit, për shembull si kjo:

# nano /etc/sudoers

ose duke përdorur programin visudo:
# vizudo

Metoda e fundit do të hapë skedarin /etc/sudoers në redaktorin e paracaktuar të përdoruesit, ose nëse një nuk është specifikuar, atëherë në redaktorin vi. Avantazhi i kësaj metode është se kur ruani skedarin do të kontrollohet për pajtueshmërinë me sintaksën.

Konfigurimi më i thjeshtë duket si ky:

Parazgjedhja env_reset

#Specifikimi i privilegjit të përdoruesit
rrënjë ALL=(ALL) ALL
përdoruesi ALL=(ALL) ALL

Ky konfigurim i jep përdoruesit të gjitha të drejtat e përdoruesit rrënjë kur ekzekuton komandën sudo. Parazgjedhja env_resetçaktivizon plotësisht të gjitha variablat e përdoruesit gjatë ekzekutimit të komandave si rrënjë. Kjo është e mirë nga pikëpamja e sigurisë, por ndonjëherë shkakton probleme. Ju mund të lejoni që variablat private të përdoren nga një grup ose individ duke shtuar një rresht si kjo:
Parazgjedhjet:%admin !env_reset

i cili do të ruajë variablat e mjedisit për të gjithë përdoruesit e grupit të administratorit, ose:
Parazgjedhjet:user env_keep=TZ

e cila do të ruajë variablin TZ për përdoruesin.

Nëse serveri administrohet nga një grup njerëzish, atëherë ka kuptim ta bëni këtë:
%admin ALL=(ALL) ALL

Siç mund ta merrni me mend, kjo hyrje u jep qasje rrënjësore të gjithë anëtarëve të grupit të administratorit.

Ju mund të konfiguroni çdo përdorues specifik që të ketë akses vetëm në komanda specifike. Për shembull:
përdoruesi ALL = /bin/mount, /bin/kill

do t'i japë përdoruesit të drejta për të ekzekutuar komandat e montimit dhe vrasjes nga çdo makinë, dhe:
user2 mydebiancomp = /sbin/modprobe

do t'i japë user2 lejet për të ekzekutuar modprobe nga mydebiancomp. Unë mendoj se sintaksa është e qartë:
hosti i përdoruesit = komanda

ku komanda shkruhet me shtegun e plotë. Për një grup, gjithçka është e ngjashme, shtohet vetëm shenja "%".

III.Cilësimet e avancuara sudo.

Është shumë i përshtatshëm për të krijuar një grup pseudonimesh kur vendosni sudo. Për të shmangur përsëritjen e vazhdueshme të komandave, përdoruesve dhe hosteve, ne mund t'i grupojmë ato në grupe dhe të vendosim rregulla për secilin grup pseudonimi. Për shembull si kjo:

Cmnd_Alias ​​Command_alias = command1, command2, ... // pseudonimet e komandës
Host_Alias ​​*host_alias = hostname1, hostname2, ... // pseudonimet e hostit
User_Alias ​​User_alias = user1, user2, ... // pseudonimet e përdoruesit

Ekzekutimi i një komande në emër të një përdoruesi tjetër është gjithashtu i mundur. Për shembull, me këtë hyrje:
përdoruesi ALL = (user2, user3) /usr/bin/ark

përdoruesi i përdoruesit mund të ekzekutojë komandën ark si user2 ose user3, duke përdorur tastin u, si kjo:
$ sudo -u përdorues2 arkë

Si parazgjedhje, sudo kujton fjalëkalimet për 5 minuta. Nëse nuk e dëshironi këtë, atëherë për çdo përdorues, grup ose pseudonim mund të vendosni një rregull të veçantë, për shembull kur:
Parazgjedhjet:user timestamp_timeout=0

Fjalëkalimi i përdoruesit nuk do të mbahet mend fare, por nëse:
Parazgjedhjet:user timestamp_timeout=-1

do të mbahet mend gjatë gjithë kohës.

Sudo pa fjalëkalime është gjithashtu e mundur. Ekziston një dizajn i ngjashëm për këtë:
përdoruesi myubuntucomp = NOPASSWD: /bin/kill

i cili do të lejojë përdoruesin nga hosti myubuntucomp të përdorë kill pa kërkuar një fjalëkalim. Futni vlerat tuaja, si ALL në vend të emrit të hostit dhe komandës, në mënyrë që përdoruesi të mos mund të vendosë kurrë një fjalëkalim për të ekzekutuar komandat si rrënjë nga çdo host, por mbani mend se kjo e bën sistemin shumë të cenueshëm.

Roje

Blogje, blogje, blogje. Maxim Fuckin di shumë për këtë.

Harta interaktive e qytetit të Orenburgut. Bërë duke përdorur teknologjinë Hartat e Google duke përdorur zhvillimet tona. Burimi është i ri, por tashmë mjaft interesant dhe i dobishëm.

Ndonjëherë, thjesht duhet të ekzekutoni një komandë nga një përdorues tjetër. Dhe ka disa mënyra se si mund të bëhet kjo. Unë do të flas për to në artikullin tim "Drejto një komandë si një përdorues tjetër në Unix/Linux".

Ekzekutoni një komandë si një përdorues tjetër në Unix/Linux - metoda 1

Dhe kështu, ju mund të përdorni Shërbimi SUDO. Le të shohim një shembull:

$ sudo -H -u Your_another_user -c "faqe ping"

Shpjegime:

  • -H YOUR_HOME: Vendos HOME (ndryshore e mjedisit për shtëpinë e një përdoruesi të caktuar) dhe si parazgjedhje është root.
  • -u YOUR_USER: Specifikoni përdoruesin nga i cili do të ekzekutohet komanda.
  • -c YOUR_COMMAND: Shërben si opsion për të futur një komandë.

Diçka si kjo.

Ekzekutoni një komandë si një përdorues tjetër në Unix/Linux - metoda 2

Mund të përdorni programin SU. Dhe tani do të jap disa shembuj.

Identifikohu si përdorues rrënjë

Për të marrë rrënjë, ekzekutoni:

$su - rrënjë

Ekzekutoni komandën si përdorues rrënjë

Këtu është një komandë shembull:

# su - rrënjë -c "COMMAND_YOUR_KETU"

Su - -c "YOUR_COMMAND_HERE arg1"

Ekzekutoni një komandë nga një përdorues tjetër duke përdorur su

Pra, këtu është një shembull:

# su -c "/opt/solr/bin/solr krijuar -c test_solr_core -n solrconfig.xml" -s /bin/sh solr Krijoi bërthamën e re "test_solr_core"

Le të shohim një shembull tjetër:

$ su Another_user -c "faqe ping"

$su -YOUR_USER -c "YOUR_COMMAND_HERE"

  • — — Do të simulojë hyrjen e përdoruesit të specifikuar.
  • -c - Përdoret për të specifikuar komandën që do të ekzekutohet (për përdoruesin e specifikuar).

Diçka si kjo.

Ekzekutoni një komandë si një përdorues tjetër në Unix/Linux - metoda 3

Dhe kështu, mund të përdorni programin Runuser. Komanda runuser fillon një shell me zëvendësimin e ID-ve të përdoruesve dhe grupeve. Kjo komandë është e dobishme vetëm kur jeni të regjistruar si përdorues rrënjë. Sintaksa është si më poshtë:

# runuser -l YOUR_USER -c "YOUR_COMMAND_HERE"

Si shembull, unë do të tregoj rreshtin e mëposhtëm:

# runuser -l nginx -c "shërbimi nginx start"

PS: Komanda runuser nuk kërkon një fjalëkalim dhe duhet të ekzekutohet vetëm nga përdoruesi rrënjë.

Opsionet kryesore:

  • -l: Krijo një guaskë identifikimi duke përdorur skedarin PAM runuser-l në vend të atij të paracaktuar.
  • -g: Tregon grupin kryesor.
  • -G: Tregon një grup shtesë.
  • -c: Në fakt, përdoret për të specifikuar një komandë.
  • –session-command=COMMAND: Kaloni një komandë të vetme në shell me opsionin “-c” dhe nuk krijon një seancë të re.
  • -m: Mos rivendos Variablat e Mjedisit(ENV).

Kjo është e gjitha, tema "Drejto një komandë si një përdorues tjetër në Unix/Linux" ka përfunduar.

Që nga kohët e lashta, shumë janë hutuar nga shumëllojshmëria e opsioneve të sigurisë kur kryejnë operacione me privilegje maksimale. Për shembull, në zyrtar Dokumentacioni i Ubuntu rekomandohet të përdorni diçka si sudo nano si një komandë redaktimi, dhe në manuale të shumta amatore (në stilin e "5 truke në linja e komandës, e cila do të habisë gjyshen tuaj") për të marrë një guaskë rrënjë, sugjerohet të shkruani sudo su -. Do të përpiqem të shpjegoj pse kjo gjendje më duket e gabuar.

Historikisht i vetmi në mënyrë universale ekzekutoni një komandë si një përdorues tjetër në Unix kishte një program të quajtur su. I nisur pa parametra, ai kërkoi fjalëkalimin e superpërdoruesit dhe, nëse ishte i suksesshëm, thjesht zëvendësoi emrin aktual të përdoruesit me rrënjë, duke lënë pothuajse të gjitha variablat e mjedisit nga përdoruesi i vjetër (përveç PATH, USER dhe disa të tjera, shihni man su nga shpërndarja juaj ). Do të ishte më e saktë të ekzekutohej si su - në këtë rast edhe guaska do të merrte mjedisin e duhur. Me opsionin -c mund të ekzekutoni komandën: su -c "vim /etc/fstab" .

Në këtë rast, përdoruesit e besuar duhej të mbanin mend fjalëkalimin rrënjë, dhe të gjithë përdoruesit e listuar në grupin "wheel" (d.m.th., në grupin anëtarët e të cilit mund të ekzekutonin komandën su dhe të bëheshin superpërdorues) kishin të njëjtin akses të pakufizuar në të gjithë. sistemi, i cili ishte një problem serioz sigurie.

Pastaj komanda sudo erdhi dhe ishte një përparim. Tani administratori mund të specifikojë një listë të komandave të lejuara për çdo përdorues (ose grup përdoruesish), skedarë të disponueshëm për redaktim, variabla të veçanta mjedisore dhe shumë më tepër (e gjithë kjo bukuri kontrollohet nga /etc/sudoers, shih man sudoers nga shpërndarja juaj) . Kur lëshohet, sudo i kërkon përdoruesit fjalëkalimin e tij, jo fjalëkalimin rrënjë. Një guaskë e plotë mund të merret duke përdorur "sudo -i"

Vlen të përmendet veçanërisht ekip special sudoedit, i cili lëshon në mënyrë të sigurt redaktorin e specifikuar në variabli i mjedisit$EDAKTOR. Me një skemë më tradicionale, redaktimi i skedarëve u bë diçka si kjo:
sudo vi /etc/fstab

E nisur në këtë mënyrë, vi trashëgoi guaskën me të drejta të pakufizuara dhe nëpërmjet:! përdoruesi mund të ekzekutonte çdo komandë (përveç nëse, sigurisht, administratori u kujdes për këtë paraprakisht) dhe të hapte çdo skedar.

Sudoedit kontrollon nëse ky përdorues mund të modifikojë këtë skedar, më pas kopjon skedarin e specifikuar në një drejtori të përkohshme, e hap atë në një redaktues (i cili trashëgon të drejtat e përdoruesit, jo root), dhe pas redaktimit, nëse skedari është ndryshuar, e kopjon përsëri me masa paraprake të veçanta.

Në shpërndarjet e bazuara në Debian, përdoruesi rrënjë nuk ka një fjalëkalim; në vend të kësaj, të gjitha veprimet administrative duhet të kryhen përmes sudo ose ekuivalentit të tij grafik gksudo. Duke qenë një zëvendësim i plotë për su , sudo duhet të jetë komanda e vetme për kalimin midis përdoruesve, megjithatë, siç u tha në fillim, për momentin nuk është kështu dhe për disa arsye të gjithë po shpikin sekuenca të egra të sudo, su, vi. dhe vizat.

Prandaj, unë sugjeroj që të gjithë të kujtojnë një herë e përgjithmonë:

Pas publikimit të parë të këtij shënimi, më bënë disa pyetje. Nga përgjigjet kemi arritur të bëjmë një mini-FAQ.

Pyetje: Si mund të përdor sudo për të bërë su-c "echo 1 > /etc/privileged_file"? sudo echo 1 /etc/privileged_file ankohet për "lejen e mohuar"
Përgjigje: Kjo ndodh sepse vetëm komanda echo ekzekutohet me të drejta të ngritura dhe rezultati ridrejtohet në skedar me të drejtat e një përdoruesi të rregullt. Për të shtuar diçka në privileged_file, duhet të ekzekutoni komandën e mëposhtme:
$ jehonë 1| sudo tee -një skedar_i privilegjuar >/dev/null
Ose të bëhet përkohësisht një rrënjë:
$ sudo -i # echo 1 > skedari_i privilegjuar # dalje nga $
Pyetje: sudo -i është më i gjatë se su - , por duket se nuk ka dallim mes tyre, pse të shtypni më shumë?
Përgjigje: sudo ka disa përparësi që ia vlejnë mundimin për të shtypur disa karaktere shtesë:

  • si parazgjedhje, sudo regjistron të gjithë aktivitetin e përdoruesit në kanalin authpriv syslog (si rregull, rezultati vendoset në skedarin /var/log/auth.log), dhe në su një veçori e ngjashme duhet të aktivizohet duke vendosur një parametër të veçantë në skedari i cilësimeve, i cili ndryshon nga shpërndarja në shpërndarje (SULOG_FILE në /etc/login.defs in Ubuntu Linux, /etc/login.conf dhe /etc/pam.d/su në FreeBSD, etj.)
  • në rastin e su, administratori i sistemit nuk mund të kufizojë komandat e ekzekutuara nga përdoruesit, por në sudo ai mund të
  • nëse përdoruesi duhet të privohet nga të drejtat administrative, në rastin e su, pasi ta largojë atë nga grupi i rrotave, ai duhet të harrojë fjalëkalimin e rrënjës; nëse përdoret sudo, mjafton ta hiqni atë nga grupi përkatës (p.sh. wheel ose admin) dhe/ose skedari sudoers, nëse është personalizuar më tej.
Pyetje: Unë jam përdoruesi i vetëm në sistemin tim dhe jam mësuar me su, pse më duhet sudo?
Përgjigje: Unë do t'i përgjigjem pyetjes me një pyetje: nëse ka sudo të saktë, pse të përdorim su-në e vjetëruar?