Selle käsu käivitamiseks peavad teil olema superkasutaja õigused. $su valikute kasutaja. Logi sisse superkasutajana

Kuidas ma saan oma õigusi süsteemiõigusteks tõsta? Windowsi maailm. Nagu selgub, on selleks rohkem kui piisavalt võimalusi. Mida valida, sõltub nii olukorrast kui ka teie eelistustest. Kuid nagu aru saate, peate oma volitusi laiendama mitte ainult akende, vaid ka pingviinide jaoks. Millised võimalused on? No vaatame...

Eelsõna

Nagu mäletate (ja nagu iga adekvaatne administraator peaks meeles pidama), pole Linuxis root all töötamine rangelt soovitatav. Ideaalses maailmas kasutaksite seda ainult serveri konfigureerimiseks, tarkvara installimiseks ja värskendamiseks ning muudeks puhtalt administratiivseteks ülesanneteks. Häda on selles, et me elame tavalises maailmas, mis on ideaalist väga kaugel. Seetõttu tuleb vahel sellist olukorda ikka ette. Tõsi, enamasti on see tingitud puhtalt hooletusest, sest ajalooliselt juhtus nii, et Linuxi kasutajad pidid aru saama, kuidas nende operatsioonisüsteem töötab. Ja isegi kui mõistate natuke süsteemi ja selle turvamehhanisme, ei saa te juurte alla istuda. Seetõttu kaalume täna erinevalt Windowsist, kus me rääkisime süsteemiõiguste hankimisest administraatorina, ainult võimalusi õiguste suurendamiseks privilegeerimata kasutajalt root-le. Nii et alustame.

Ärakasutamine

Kõik Linuxis superkasutaja õiguste saamise meetodid võib jagada kahte kategooriasse. Esimene on just ärakasutamine. Erinevalt Windowsist oma värskenduste automaatse installimise mehhanismiga peavad Penguini järgijad enamasti iseseisvalt jälgima plaastrite väljalaskmist ja nende installimist. Sellega seoses on Linuxi masinate seas palju suurem võimalus kohata süsteemi, mida pole veel täielikult paigatud. Millised on eelised seda meetodit kas saate esile tõsta? Alustuseks kasutab enamik ärakasutusi OS-i kerneli turvaauke, mis võimaldab neil saada maksimaalseid õigusi. Sobiva kasutuskoodi leidmine pole nii keeruline ja ilmselt teate mõnda ressurssi. Lisaks ei pea te ärakasutamise ärakasutamiseks mõnikord mõistma kõiki kasutatava haavatavuse keerukust – peate selle lihtsalt õigesti kompileerima ja käivitama (mõnikord peate seda siiski veidi kohandama, kuid üsna sageli toimib kõik ilma failiga kohandamata). Üldiselt näeb toimingute algoritm välja järgmine:

  1. Määrake kernel ja levitamise versioon.
  2. Hankige ärakasutamise loomiseks saadaolevate tööriistade loend.
  3. Edastage sploit sihtmasinasse.
  4. Kompileerige (vajadusel) ja käivitage.
  5. Nautige saadud juuri.

Noh, nüüd iga sammu kohta üksikasjalikumalt.

Identifitseerimine

Plaani järgi otsustades tuleb esmalt välja selgitada, kuhu sattusime, millist distrot kasutame ja milline on kerneli versioon. Kerneli versiooni saab kätte tuntud käsu uname -a või selle analoogide abil. Kasutatava distributsiooni kohta info saamiseks tuleb vaadata jne kataloogis asuvat faili *-release (olenevalt distributsioonist võib seda nimetada erinevalt: Ubuntus lsb-release, Redis redhat-release Müts / CentOS ja nii edasi):
cat /etc/*-release

Teades levitamist ja kerneli versiooni, saate liikuda teise etapi juurde - sobiva “peavõtme” leidmine.

Otsige ärakasutamist

Kui kogu vajalik teave on käes, on aeg otsida sobiv ärakasutamine. Esimese asjana tuleb meelde exploit-db.com, kuid on ka alternatiive: 1337day, SecuriTeam, ExploitSearch, Metasploit, securityreason, seclists. Lõppude lõpuks on Google olemas, see teab kindlasti rohkem kui keegi teine. Natuke tulevikku vaadates ütlen: mõnikord ei pruugi "peavõti" mingil põhjusel töötada või peate seda teatud tingimuste või oma vajadustega pisut kohandama, st failiga läbi minema. Sel juhul ei tee kahju, kui otsite selle kohta lisateavet, mida saate ühest järgmistest allikatest.
www.cvedetails.com
packetstormsecurity.org
cve.mitre.org

Oletame, et leiate sobiva ärakasutamise, mis annab teile pääsu juurte maailma. Jääb vaid see kuidagi autosse transportida.

Kojuvedu

Laoturi asukohta toimetamiseks on olemas päris palju meetodeid alates tuntud cURL/wget, Netcat, FTP, SCP/SFTP, SMB kuni DNS-i kasutamine TXT-kirjed. Et teada saada, millised neist tööriistadest meil on, käivitage:

Otsi / -nimi wget leia / -nimi nc* leia / -nimi netcat* leia / -nimi tftp* leia / -nimi ftp

Oletame, et leidsime Netcati. Selle abil faili edastamiseks käivitage vastuvõtval poolel:
nc -l -p 1234 > välja.fail

See tähendab, et kuulame porti 1234. Saates teeme järgmist:
nc -w 3 1234< out.file

Kui ülekanne toimub alates *nix *nix süsteemil, st seal ja seal standardsed kommunaalteenused, siis saate edastusprotsessi kiirendamiseks kasutada tihendamist. Sel juhul näevad käsud välja järgmised:

Nc -l -p 1234 | lahti -c | tar xvfp - // tar cfp saamiseks - /some/dir | suruma -c | nc -w 3 1234 // saatmiseks

Ülejäänud valikud on veelgi lihtsamad, nii et me ei kaalu wgeti, FTP ja muude tuntud meetodite kasutamist.

Peida ja otsi

Olgu, me mõtlesime välja, kuidas see kohale toimetada. Aga kuidas vältida põletust? Kui teie ärakasutamine avastatakse, võite olla kindel, et lünk suletakse kiiresti. Nii et peate selle hostima, kompileerima ja käivitama mõnest silmapaistmatust kohast. Linuxis on punktiga algavad kataloogid (näiteks .secret_folder) peidetud. Seetõttu oleks loogiline kasutada neid oma tegevuse varjamiseks. Näiteks pange nendesse exploit-kood: /tmp/.nothingthere/exploit.c . Sel juhul tuleb aga esmalt veenduda, et tmp on monteeritud ilma noexec-valikuta ja sealt saab käivitada koostatud exploiti (selleks kasuta mount käsku).

Kasutamise ehitamine ja käitamine

Kui oleme Sploiti tarninud ja paigutanud, tuleb see kokku panna/konfigureerida. Reeglina kirjutatakse exploitid C või mõnes Python/Perl/PHP skriptikeeles. Regulaarsed lugejad ][ teavad, et kompilaatori serverisse jätmine pole parim parim lahendus, seega lõigatakse see tavaliselt välja. Kui teie küsimus kompilaatori versiooni kohta gcc -v bash tagastab käsu gcc: ei leitud, siis on teil "õnnelik" ja peate tegema ümbersõidu. See tähendab, et otsige tabelit Pythonis, Perlis või milleski muus või koostage see virtuaalne masin sarnase OS-i ja kerneli versiooniga. Seejärel teisaldage saadud käivitatav fail sihthosti (samas see meetod ei garanteeri 100% toimimist; ärakasutamine võib kukkuda ja süsteemi krahhi teha, seega olge siin ettevaatlik). Kuid nagu praktika näitab, peab süsteemis siiski olema ühe nimetatud keele tõlk. Nii et te ei tohiks kohe alla anda, kontrollime kõiki valikuid.

Otsi / -name perl* find / -name python* find / -name gcc* find / -name cc

Kui see õnnestub, pole vaja teha muud, kui käivitada koostatud ärakasutamine ja nautida reklaamimist. Noh, või mõelge välja, miks see ei töötanud, olenevalt teie õnnest.

Rikkumiste vastu võitlemine

Siin on raske välja mõelda uuenduslikke retsepte. Kõik on ammu teada. Peate lihtsalt plaastrid õigeaegselt installima. See on esimene. Teine on piirata kohti, kust faile saab käivitada (tmp kaust tuleks kindlasti sellest võimalusest ilma jätta). Noh, rakendage mõnda turvalahendus, näiteks grsecurity.

Õigused, failid, teed ja konfiguratsioonid

Teiseks kategooriaks, mida õiguste tõstmisel saab eristada, on meetodid, mis ei ole seotud exploitide kasutamisega, vaid põhinevad valesti seatud õigustega failide otsimisel. Siin, nagu Windowsi puhul, on mõned nipid, kuid põhimõtteliselt on tegemist ikkagi sama tööga andmete kogumisel ja analüüsimisel. Tavaliselt on esimene asi, mida otsida, failid, mis on kõigile loetavad ja kirjutatavad:
leia / -perm 2 ! -tüüp l -ls

Neid võib olla üsna palju ja nende hulgast võite leida midagi huvitavat: konfiguratsioonifailid, saitide/rakenduste allikad, initi või cron käivitatud skriptid. Põhimõtteliselt on normaalne olukord, kus fail on kõigile loetav ja kirjutatav. Probleemid tekivad siis, kui kasutajad/administraatorid/skriptid hakkavad mõttetult õigusi muutma. Nii et kui muudate õigusi, proovige vältida kasutades chmod 777. Noh, viige läbi perioodilisi auditeid olulised failid polnud kõigile kättesaadavad.

Setuid+setgid

Nagu dokumentatsioon ütleb, on setuid ja setgid lubade lipud, mis võimaldavad käivitada käivitatavaid faile käivitatava faili omaniku või rühma (tavaliselt juur) õigustega. Kõrgendatud õigustega käivitamisel pääsevad sellised käivitatavad failid juurde privilegeeritud teabele. Näiteks kui määrate käsu setuid käsule ls, saate vaadata nende kataloogide sisu, millele teil algselt juurdepääs keelati. Ja vimi puhul saan redigeerida konfiguratsioonifaile, mida mul varem polnud õigust uurida.

Seega, kui setuid/setgid lipuga rakendused sisaldavad turvaauke, nagu puhvri ületäitumine või käsusüst, võib ründaja käivitada suvalise koodi kõrgendatud õigustega. Sellepärast järgmine variant tavaliselt otsivad nende lippudega käivitatavaid faile.
sudo find / -xdev \(-perm 4000\) -type f -print0 -exec ls -s () \;

Põhimõtteliselt saate seda teha ka ilma sudota, see on vajalik ainult kataloogide kontrollimiseks, millele teil pole juurdepääsu.

Selliste edasiseks kasutamiseks on tavaliselt kolm võimalust käivitatavad failid. Esimene on püüda tõsta privileege selle rakenduse pakutavate funktsioonide alusel (või õigemini mõelda välja oma viis, kuidas seda funktsiooni ebatavalisel viisil kasutada). Teine võimalus on leida avalik ärakasutamine või viia läbi sõltumatu fuzzing vigade tuvastamiseks. Kolmas on käsusüst. Universaalset retsepti pole, kõik sõltub olukorrast.

SUDO

sudo (asendus) käsk kasutaja ja do), mis tähendab sõna-sõnalt "kasutaja asendamine ja käivitamine", võimaldab teil delegeerida teatud privilegeeritud ressursse kasutajatele, säilitades samal ajal töö logi. See tähendab, et see annab kasutajatele võimaluse käivitada käske administraatorina (või teiste kasutajatena), kasutades oma enda parool, mitte juurparool. Juurdepääsuotsuste tegemise reeglid on failis /etc/sudoers. Lisateavet selle faili vormingu ja reeglite seadmise kohta leiate ametlikust juhendist või Vikipeediast. Ütlen vaid, et ka seda faili tuleb hoolikalt kontrollida. Sest sageli juhtub, et mõned rakendused muudavad seda installimise ajal ja pealegi mitte parem pool. Selle tulemusena on kasutajatel võimalus oma privileege suurendada (postitus teemal Solvav turvalisus, mis räägib sellisest juhtumist).

PATH

Nagu Windowsis, aitavad ka Linuxis valesti konfigureeritud teed teil oma õigusi suurendada. Tavaliselt juhtub see keskkonnamuutuja PATH puhul (kasutage selle vaatamiseks printenv). Kas oled vaadanud? Suurepärane, öelge nüüd: mis siis, kui keskkonnamuutuja PATH algab tähega. (.:/bin:/usr/sbin ....)? Tavaliselt teevad seda kasutajad, kes ei soovi sisestada kahte lisamärki, st nad tahavad käsku kutsuda järgmiselt: $ programm asemel $ ./program . Lisand. PATH tähendab võimalust käivitada faile/skripte töökataloogist. Saate selle lisada järgmiselt.

PATH=.:$(PATH) ekspordi PATH

Kujutage nüüd ette olukorda, kus meil on kaks kasutajat: Joe (ründaja) ja Bob. Joe teab, et Bobil on sudo õigused muuta kasutajate paroole, sealhulgas root. Pealegi on Bob laisk ja lisatud. keskkonnamuutujale PATH. Wile Joe kirjutab programmi, mis muudab juurparooli, nimetab seda ls-iks ja paneb selle kausta, kuhu Bobile meeldib vaadata. Nüüd, kui viimane läheb kausta ja soovib selle sisu vaadata, käivitatakse Joe kirjutatud programm ja muudetakse juurparool. Seetõttu kontrollime alati keskkonnamuutujad huvitavate asjade olemasolu ja enda jaoks teeme järgmised järeldused:

  1. Me ei kasuta seda kunagi. PATH muutujas.
  2. Kui punkt on endiselt olemas, asetage see järgmine rida failis .bashrc või .profile:
    PATH= kaja $PATH | sed -e "s/::/:/g; s/:.:/:/g; s/:.$//; s/^://"

Tööriistad

Nõrkade kohtade otsimise automatiseerimiseks saate kasutada järgmisi tööriistu.

1. LinEnum on bash-skript, mis teeb teie eest ära kogu musta töö, teostades kõik selles petulehel kirjeldatud kontrollid. Kokku on tema arsenalis umbes 65 erinevad kontrollid, alates kerneli versiooni kohta teabe hankimisest kuni potentsiaalselt huvitavate SUID/GUID-failide otsimiseni. Lisaks saate skripti edasi anda märksõna, mida see otsib kõigist konfiguratsiooni- ja logifailidest. Kontrollimist alustatakse järgmiselt: ./LinEnum.sh -k märksõna -r report -e /tmp/ -t . Pärast skannimise lõppu esitatakse teile üsna üksikasjalik aruanne, mille huvitavamad kohad on kollase värviga esile tõstetud.
2. LinuxPrivChecker – Pythoni skript, mis on kasulik ka võimalike õiguste suurendamise võimaluste otsimisel. Üldiselt teeb see kõiki samu standardseid asju: kontrollib privileege, hangib süsteemi kohta teavet... Kuid selle peamine omadus on see, et pärast kontrolli lõppu pakub see teile nimekirja ärakasutamistest, mis tema arvates aitavad privileege tõsta. Nii tubli mees :).
3. unix-privesc-check - see skript võimaldab otsida võimalusi õiguste suurendamiseks mitte ainult Linuxis, vaid ka Solarise, HPUX ja FreeBSD puhul. See püüab tuvastada konfiguratsioonivigu, mis võimaldaksid eelisõiguseta kasutajal süsteemi tõusta.
4. g0tmi1k’s ajaveeb – see on ajaveeb, kus on hästi kirjeldatud kõik kolme nimetatud tööriistaga tehtavad kontrollid. Seetõttu soovitan teil tungivalt sinna pilk peale visata ja sellega tutvuda, et saaksite ette kujutada, kuidas need tööriistad "seestpoolt" töötavad.



LinuxPrivChecker sisaldab suur nimekiri exploits, mida Exploit Database'ist pidevalt uuendatakse

Järelsõna

Nagu olete näinud, on Linuxi maailmas ka õiguste tõstmine üsna tavaline. Edu saladus on lihtne: eesmärgi saavutamiseks pead olema kannatlik ja teadma, kust otsida ja mida otsida. Kust otsida, teate nüüd, milliseid utiliite automatiseerimiseks kasutada, nii et nüüd saate vallutada mitte ainult win-, vaid ka nix-süsteemi. Tehke seda!

root kasutaja ja sudo

GNU/Linuxi süsteemide juurkasutaja on kasutaja, kellel on teie süsteemile administraatorijuurdepääs. Tavakasutajatel puudub see juurdepääs juurdepääsu puudumise tõttu. Kubuntul pole aga juurkasutajat. Selle asemel antakse administraatorijuurdepääs üksikutele kasutajatele, kes saavad kasutada "sudo" rakendust haldusülesannete täitmiseks. Esiteks konto, mis on loodud süsteemi installimise ajal, omab vaikimisi juurdepääsu sudo rakendusele. Saate keelata sudo juurdepääsu või anda selle rakenduse abil Kasutajad ja rühmad (Vt "Kasutajad ja rühmad").

Kui käivitate programmi, mis nõuab superkasutaja õigusi, nõuab sudo teilt oma tavakasutaja Hiina parool. See tagab selle pahatahtlikud rakendused ei kahjusta teie süsteemi ja tuletab teile ka meelde, mida kavatsete teha haldustoimingud, mis nõuavad erilist hoolt!

Sudo kasutamiseks käsureal tippige lihtsalt "sudo" enne käsku, mida soovite käivitada. Pärast seda palub sudo teil sisestada parool.

Sudo jätab teie parooli meelde määrata aeg(vaikimisi 15 minutit). See funktsioon võimaldab kasutajatel sooritada suur hulk haldusülesanded, ilma et peaksite iga kord parooli sisestama.

Tähelepanu

Olge haldusülesannete täitmisel ettevaatlik – võite oma süsteemi rikkuda!

Mõned näpunäited sudo kasutamiseks:

    Juurkasutaja terminali kasutamiseks tippige käsureale "sudo -i".

    Kogu Kubuntu graafiliste konfiguratsiooniutiliitide rühm kasutab juba sudot, nii et vajadusel küsitakse rakenduse abil parooli kdesu, mis on graafiline kest sudo .

    Programmi kohta lisateabe saamiseks sudo ja juurkasutaja puudumine Kubuntus, vaadake Ubuntu wiki sudo lehte.

Programmide käsitsi käivitamine juurõigustega

Mõnikord on vaja käivitada programm root õigustega. Seda on dialoogi abil lihtne teha Käivita käsk .

Tähelepanu

Olge juurõigustega rakenduste käivitamisel ettevaatlik, kuna see võib teie süsteemi rikkuda. Sest lisateavet vaadake "Juurkasutaja ja sudo".

    Avatud dialoog Käivita käsk vajutades Alt -F2

    Sisestage programmi nimi, mida soovite käivitada, koos eesliitega kdesu ja vajutage Sisestage. Näiteks jooksma failihaldur Konqueror root õigustega, tüüp

    1. Kasutades käsku: su

    Paljusid käske saab käivitada ainult superkasutaja, seega peame teadma, kuidas saada administraatoriks. Selleks saame kasutada käsku: su (vaheta kasutajat). Käsk su aktsepteerib järgmisi vorminguid:

    kuid enamasti me kasutame su kasutajaks saamiseks juur:

    Su - juur

    Kui real pole kasutajanime määratud, eeldatakse, et kasutaja on automaatselt root, seega saab käsku lühendada:

    kuid mõlemad meeskonnad käituvad erinevalt. "su" annab praegusele kasutajale identiteedi, samas kui "su -" annab praegusele kasutajale identiteedi koos ümbrusega, mis saadakse kasutajana registreerimisel.

    Sageli kasutavad kasutajad "su", et saada root. Kui proovite käivitada käsku (näiteks - ifconfig), kuvatakse tõrge: "käsku ei leitud".

    Su Parool: ifconfig bash: ifconfig: käsku ei leitud

    Põhjus on selles, et süsteemi tavakasutajatel ja juurkasutajatel on erinevad PATH-i keskkonnamuutujad (saate vaadata kasutaja PATH-i kasutades "echo $PATH" pärast sisenemist). Linuxi käsud, otsib kest kasutaja PATH-i, et leida käivitatav käsk. See alustab otsimist kõigist PATH-is loetletud kataloogidest, kuni sihtmärk leitakse.

    Tavalised kasutajakäsud asuvad tavaliselt kaustades /usr/local/bin, /usr/bin ja /bin. Ja juurkasutaja käsud asuvad peamiselt /usr/local/sbin, /usr/sbin, /sbin ja juur PATH peegeldab seda. Nii et kui saate "su -" abil superkasutajaks, nõustute sellega ka uus viis PATH põhikäskude juurde. Ja kasutades ainult "su", see salvestatakse kohandatud tee PATH on vaikeseade, seega, kui proovite käivitada programmi, mis asub /usr/local/sbin, /usr/sbin, /sbin, annab see tulemuse: "käsku ei leitud". Üksikasjalikuma selgituse saamiseks vaadake man bashi lehte, eriti sisselogimiskestade jaotist.

    Seega peate kas määrama käsu täieliku tee (näide - /sbin/ifconfig), kui kasutate "su", või kasutage "su -", kui muutute administraatoriks.

    2. Sudo kasutamine

    Te ei pea olema superkasutaja iga kord, kui soovite mõnda konkreetset haldusfunktsiooni käivitada. Tänu sellele Sudo, saate mõnda või kõiki käske käivitada administraatorina. Millal Sudo installitud (pakett: Sudo), saate selle konfigureerida, kasutades administraatorina käsku "visudo". Põhimõtteliselt redigeerib see (Vim vaikimisi) /etc/sudoers, kuid seda ei soovitata käsitsi teha.

    Alex KÕIK=(KÕIK)KÕIK

    Alex on kasutajanimi. Salvestage (vajutage paoklahvi, seejärel tippige wq) ja oletegi valmis. Logige sisse Alexina ja käivitage näiteks:

    $sudo yumi värskendus

    Sudo küsib parooli. See on Alexi parool, mitte juurkasutaja oma. Seega olge Sudoga kasutajaõiguste andmisel ettevaatlik.

    Kuid Sudo saab teha enamat kui lihtsalt seda. Võime lubada kasutajal või kasutajate rühmal käitada ainult ühte käsku või käskude rühma. Läheme tagasi oma sudoersi faili juurde. Alustame Alexi ja Alisaga, administraatorirühma liikmetega. Kui tahame, et kõik kasutajad rühmas "administraator" saaksid käitada kõiki käske superkasutajatena, peame oma näidet muutma:

    %admin KÕIK=(KÕIK)KÕIK

    Alex saab täita ka superkasutaja käsku ning Alisal on samade õiguste ja parooliga õigus Sudot käivitada. Kui alex ja alisa ei ole sama grupi liikmed, saame sudoers failis määratleda kasutaja aliase:

    User_Alias ADMINS = alisa,alex

    Siin oleme määratlenud aliase nimega ADMINS, mille liikmed on alisa ja alex.

    Kuid me ei taha, et Alex ja Alisa saaksid ühtegi programmi root kasutajana käivitada. Soovime, et nad saaksid käivitada ainult "updatedb". Määratleme käsu pseudonüümi:

    Cmnd_Alias LOCATE = /usr/sbin/updatedb

    Kuid sellest ei piisa! Peame Sudole ütlema, et ADMININA defineeritud kasutajad saavad käivitada LOCATE määratud käske. Selleks asendame read "%admin" järgmistega:

    ADMINIS KÕIK = LOCATE

    See tähendab, et ADMINSi pseudonüümi kasutajad saavad kõiki käske LOCATE aliases käivitada.

    Seekord näeb /etc/sudoers välja selline:

    User_Alias ADMINS = alisa, alex Cmnd_Alias LOCATE = /usr/bin/updatedb ADMINS KÕIK = LOCATE

    Selle tulemusel saavad alex ja alisa oma parooli sisestades käivitada updatedb-i administraatorina.

    Kui muudate faili viimast rida:

    ADMINS KÕIK = NOPASSWD:LOCATE

    siis saavad alex ja alisa käivitada "sudo updatedb" ilma parooli sisestamata.

    Saate lisada käsualiasele rohkem käske ja reeglile rohkem varjunimesid. Näiteks saame luua varjunime NETWORKING, mis sisaldab mõnda võrgukäsklused tüüp: ifconfig, route või iwconfig:

    Cmnd_Alias ​​​​NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhcclient, /usr/bin/net, sbin/iptables, /usr/bin/rfcom, /usr/bin/wvdial, /sbin /iwconfig, /sbin/mii-tool

    Lisame kõik selle oma /etc/sudoers faili (kasutades visudot!). Samuti anname oma grupile ADMINS õigused käivitada programme VÕRGUSTUSE aliasest:

    User_Alias ADMINS = alice, bob Cmnd_Alias LOCATE = /usr/bin/updatedb Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net ,/sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool ADMINS KÕIK = LOCATE, NETWORKING

    Kiire test: logige sisse kui alisa (või Alex) ja tippige:

    $ping -c 10 -i localhost

    Vastus peaks kiiresti tagasi tulema:

    PING localhost.localdomain (127.0.0.1) 56 (84) baiti andmeid. ping: ei saa üle ujutada; kasutajale lubatud minimaalne intervall on 200 ms

    Nüüd sama asi, kuid Sudoga:

    $sudo ping -c 10 -i 0 localhost PING localhost.localdomain (127.0.0.1) 56(84) baiti andmeid. 64 baiti domeenist localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 aeg=0,049 ms 64 baiti saidilt localhost.localdomain (127.0.0.1): icmp_seq=2 ttl=64 aeg=0,64 baiti localhostdomain-lt (127.0.0.1): icmp_seq=3 ttl=64 aeg=0.021 ms 64 baiti domeenist localhost.localdomain (127.0.0.1): icmp_seq=4 ttl=64 aeg=0.030 ms 64 baiti domeenist localhost.1.0:0:0 icmp_seq=5 ttl=64 aeg=0,017 ms 64 baiti domeenist localhost.localdomain (127.0.0.1): icmp_seq=6 ttl=64 aeg=0,016 ms 64 baiti domeenist localhost.localdomain (127.0.0.0.1): 7=4 icmp_tse. aeg = 0,016 ms 64 baiti domeenist localhost.localdomain (127.0.0.1): icmp_seq = 8 ttl = 64 aeg = 0,016 ms 64 baiti domeenist localhost.localdomain (127.0.0.1): icmp_seq = 9 ttl. = 61 baiti saidilt localhost.localdomain (127.0.0.1): icmp_seq=10 ttl=64 time=0.016 ms --- localhost.localdomain pingi statistika --- 10 paketti edastatud, 10 vastu võetud, paketikadu 0%, aeg 1ms rtt min/avg/ max/mdev = 0,016/0,023/0,049/0,010 ms, ipg/ewma 0,187/0,028 ms

    Sudo sageli ette nähtud teatud kasutajad osaline juurdepääs privilegeeritud meeskondadele, et nad saaksid täita piiratud haldusfunktsioone. Üks mugavustest Sudo on see, et kõik käsud kirjutatakse kausta /var/log/secure. Ülaltoodud näidet kirjeldab logi rida:

    18. aprill 11:23:17 localhost sudo: alex: TTY=pts/0 ; PWD=/kodu/alex ; KASUTAJA=juur ; COMMAND=/bin/ping -c 10 -i 0 localhost

    See on kõik. Nüüd ei unusta ma kunagi, kui kasutasin Sudot: "suure jõuga kaasneb suur vastutus."

    2.1 Sudo kest

    Kui teil on sudoersis konfigureeritud piisavalt õigusi, saate avada ka root kest kasutades:

    IN uusimad versioonid ainult CentOS 5 puhul kasutage shelli juurkäivitamiseks sudo -s. Olge väga ettevaatlik, kuna see võib muuta või luua uusi faile juurkataloogis ja installida kodukataloog helistav kasutaja.

    3.konsooliabiline

    Consolehelper on kest GUI rakenduste käivitamiseks. Kui see käivitab, kontrollib see vajaliku rakenduse PAM-i konfiguratsiooni. See tähendab, et saame kasutaja autentida, kasutades kõiki paigaldatud moodulid PAM. Peamine meetod on parooli küsimine, kuid kui meil on õige varustus. saame autentida kiipkaardi, žetoonide, sõrmejälgede jms abil. PAM-i konfigureerimine ei kuulu selle dokumendi reguleerimisalasse (vt PAM-i administraatori juhendit), seega vaatame konsooliabi konfiguratsioonietappi, mis on vajalik rakenduste käivitamiseks administraatorina ja administraatori parooli nõudmiseks.

    Näiteks seadistame /usr/bin/xterm töötama administraatorina.

    Ln -s /usr/sbin/consolehelper /usr/bin/xterm-root

    Nüüd PAM-i seadistamiseks looge fail /etc/pam.d/xterm-root:

    #%PAM-1.0 auth include config-util account include config-util seanss include config-util

    Lõpuks seadistage consolehelper käivitama /usr/bin/xterm administraatorina käsuga "xterm-root". Looge fail /etc/security/console.apps/xterm-root:

    KASUTAJA=root PROGRAM=/usr/bin/xterm

    See on kõik. Käivitage "xterm-root" (alates käsurida või faili shortcut.desktop), sisestage parool ja minge. Kui kuvatakse tõrketeade: "Xlib: ühendusest ":0.0" keeldus server, käivitage esmalt käsk "xhost local:root".

    |

    Linux on mitme kasutajaga operatsioonisüsteem, mis kasutab failisüsteemi tasemel turvalisuse tagamiseks Unixi privileegide kontseptsiooni. Linuxiga töötades on väga oluline mõista, mis on load ja omandiõigus. See artikkel aitab teil mõista Linuxi kasutajaõigustega seotud põhimõisteid.

    Nõuded

    • Linuxi algoskused.
    • Linuxi server (valikuline).

    Linuxi kasutajad

    Kuna Linux on mitme kasutajaga süsteem, on oluline mõista, kuidas kasutajad ja rühmad töötavad. Vaatame neid mõisteid üksikasjalikumalt.

    Linuxis on kahte tüüpi kasutajaid: süsteemne ja tavaline. Süsteemi kasutajad on loodud teostama mitteinteraktiivseid ja taustaprotsessid, ja tavakasutajad vastutavad interaktiivsete ülesannete täitmise eest. Kui logite Linuxi süsteemi esimest korda sisse, olete võib-olla märganud, et see käivitab paljud süsteemikasutajad, kes omakorda käivitavad erinevaid teenuseid, millest süsteem sõltub.

    Kõigi süsteemi kasutajate vaatamiseks kontrollige faili /etc/passwd. Iga rida selles failis sisaldab teavet selle kohta üksikkasutaja, alustades kasutajanimega (enne esimest koolonit). Faili sisu kuvamiseks ekraanil sisestage:

    Superkasutaja

    Lisaks kahele peamisele Linuxi kasutajatüübile on olemas ka superkasutaja ehk root. See kasutaja saab alistada teiste kasutajate failiõigused ja piirata juurdepääsu. Põhimõtteliselt on superkasutajal juurdepääsuõigused kõigile serveris olemasolevatele failidele. Sellel kasutajal on õigus teha kogu süsteemi hõlmavaid muudatusi, seega on tema turvalisus serveri enda turvalisuse jaoks väga oluline.

    Samuti saate konfigureerida teisi kasutajaid superkasutaja õigusi täitma. Selleks tuleb tavakasutajale anda juurdepääs sudo käsule. Serveri administraatori igapäevatöös on soovitatav kasutada just sellist laiendatud õigustega kontot, kuna juurt kasutades sisse jooksvalt ohtlik ja võib süsteemi hävitada.

    Linuxi rühmad

    Grupid on 0 või enama kasutaja kogud. Kasutaja kuulub vaikegruppi ja võib olla ka mõne muu grupi liige.

    Kõigi saadaolevate rühmade ja nende liikmete loendite vaatamiseks avage /etc/group.

    Faili omandi- ja juurdepääsuõigused

    Linuxis kuulub iga fail ühele kasutajale ja ühele rühmale ning on individuaalsed seaded juurdepääs.

    Lubade vaatamiseks kasutage käsku ls. Sellel on pikk valikute loend (nt ls -l myfile). Failidele juurdepääsu seadete vaatamiseks praegune kataloog, käivitage käsk ilma argumentideta:

    Kataloogi /etc sisu päringu tegemiseks sisestage:

    Väljundi esimene veerg näitab faili juurdepääsurežiimi, teine ​​ja kolmas veerg sisaldavad kasutajanime ja rühma, neljas - faili suurus, viies - selle kuupäev. viimane muudatus, näitab viimane veerg faili nime.

    Üldiselt on käsu ls väljund üsna kergesti mõistetav, välja arvatud võib-olla esimene veerg, mis kirjeldab failiõigusi. See näeb välja umbes selline:

    drwxrwxrwx
    drwxrwx---
    -rw-rw----
    drwx------
    -rw-------

    Et mõista, mida need tähed ja sidekriipsud tähendavad, jagame veeru sisu selle komponentideks. Ülaltoodud näite esimese rea võib jagada järgmistesse kategooriatesse:

    d rwx (1) rwx (2) rwx (3)

    • d – failitüübi väli.
    • rwx(1) – faili omava kasutaja õigused.
    • rwx(2) – omanikgrupi õigused.
    • rwx(3) – teiste kasutajate õigused.

    Failitüübid

    Linuxis on kahte peamist tüüpi faile: tavaline ja eriline.

    Tavalised failid tähistatakse tüübiväljal sidekriipsuga. Tavalised failid on lihtsad failid, kuhu saab andmeid salvestada.

    Fail on eriline, kui tüübiväli sisaldab tähte. Selliseid faile töödeldakse operatsioonisüsteemi erinevalt tavafailidest. Sümbol failitüübi väljal näitab, millist tüüpi spetsiaalsed failid kehtib konkreetne fail. Kõige tavalisem erifaili tüüp on kataloog (või kataloog), mida tähistab sümbol d (nagu ülaltoodud näites). IN Linuxi süsteem Erifaile on mitut tüüpi, kuid see teema jääb selle artikli reguleerimisalast välja.

    Juurdepääsuklassid

    Nagu varem öeldud, on igal failil seaded kolm kategooriat(või juurdepääsuklassid):

    1. kasutaja – faili omanik;
    2. grupp – faili omanik (sellesse klassi kuuluvad kõik grupi liikmed, kuhu kasutaja – faili omanik kuulub);
    3. ja teised kasutajad (sellesse klassi kuuluvad kõik kasutajad, kes ei kuulu eelmistesse klassidesse).

    Kõik Linuxi distributsioonid järgivad seda õiguste järjekorda.

    Juurdepääsu tüübid

    • r (lugemine) – faili lugemise õigus,
    • w (kirjutamine) – õigus muuta (redigeerida),
    • x (käivita) – jooksmisõigus (mõnes erijuhtudel x asemel võib kasutada teist sümbolit).

    Kui sümboli asemel on sidekriips, tähendab see see klass ei oma vastavaid juurdepääsuõigusi. Näiteks:

    Sel juhul on kasutajal ja rühmal - faili omanikel - kõik juurdepääsuõigused ning teistele kasutajatele on juurdepääs failile täielikult keelatud.

    Vaatame lähemalt, mida iga juurdepääsutüüp täpselt pakub.

    Märkus: Tavapärase juurdepääsu tagamiseks failidele ja kataloogidele kasutatakse juurdepääsutüüpe sageli üksteisega kombineerituna.

    Luba faili lugeda

    Tavafaili lugemise õigus on võimalus vaadata selle sisu.

    Kataloogi lugemisõigus võimaldab kasutajal vaadata sellesse salvestatud failide nimesid.

    Õigus faili muuta

    Tavafaili puhul annab see õigus kasutajale võimaluse faili sisu muuta või see kustutada.

    Kui kasutajal on kataloogi redigeerimise õigus, saab see kasutaja kataloogi kustutada, selle sisu muuta (st selles olevaid faile luua, ümber nimetada või kustutada) ja sinna salvestatud failide sisu.

    Käivitamise õigus

    Selle õiguse omamisel saab kasutaja käivitada tavaline fail, kuid selleks on vaja ka selle faili lugemisõigusi. Käivitamisload peavad olema määratud käivitatavad programmid ja shelliskriptid.

    Kui kasutajal on õigus kataloogi käivitada, siis ta saab seda kataloogi lugeda ja pääseda juurde ka selle metaandmetele salvestatud failide kohta.

    Näited privileegidest

    Vaatame nüüd mõnda kasulikku levinud näited faili juurdepääsuõigused.

    • -rw——-: failile on juurdepääs ainult kasutajal, kellele fail kuulub.
    • -rwxr-xr-x: iga süsteemi kasutaja saab sellist faili käitada.
    • -rw-rw-rw-: igal süsteemi kasutajal on õigus sellist faili muuta.
    • drwxr-xr-x: seda kataloogi saab lugeda iga süsteemi kasutaja.
    • drwxrwx—: kataloogi sisu saavad lugeda ja muuta ainult omanik ja grupp.

    Nagu näete, on faili omanikul tavaliselt kõik õigused failile (või vastavalt vähemalt, omab rohkem õigusi kui teistel klassidel). Turvakaalutlustel peaksid failid olema juurdepääsetavad ainult neile kasutajatele, kes vajavad neile juurdepääsu teatud põhjusel.

    Juurdepääsuõiguste kombinatsioone on palju, kuid ainult mõned neist on igal juhul kasulikud. Näiteks on muutmis- ja käitamisõigused peaaegu alati ühendatud faili lugemisõigustega, kuna faili on raske muuta ja seda on võimatu ilma lugemisõigusteta käivitada.

    Märkus: Juurdepääsuõiguste muutmise kohta lisateabe saamiseks lugege. See räägib kasutamisest võistkonnad chown, chgrp ja chmod.

    Järeldus

    Olete nüüd tuttav põhimõistetega, mis on seotud õiguste ja omandiõigusega Linuxi keskkonnas.

    Sildid:

    Nagu teate, suhtub Linux kasutajate haldamisse ja neile süsteemi kasutamise lubade andmisse väga tõsiselt. Tavakasutaja saab faile kirjutada ainult enda kataloogi ja /tmp/ kataloogi. Mõningaid faile on võimalik lugeda ka juurfailis failisüsteem. Kuid te ei saa programme installida, kuna selleks on vaja kirjutamisõigust, te ei saa muuta failiatribuute, te ei saa teenuseid käivitada, te ei saa lugeda mõnda logifaili ja te ei saa palju enamat teha.

    Linuxis on juurfailisüsteemi haldamise ja seal failide loomise õigus ainult juurkasutajal.

    Selles artiklis vaatleme, milliseid programme on juurõiguste saamiseks vaja Linuxi kasutaja kuidas need töötavad, kuidas käivitada programmi tavakasutajana administraatorina ja kuidas käivitada graafikaprogrammid juurõigustega. Samuti saame teada, mis on sudo ning mis vahe on su ja sudo vahel.

    Võtaks kaua aega, et loetleda, mida tavaline Linuxi kasutaja teha ei saa, on lihtsam öelda, milleks tal on õigus, nimelt millal standardseadistus failiõigused Linuxis, tavakasutaja saab:

    • Lugege, kirjutage ja muutke oma kataloogis olevate failide atribuute
    • Lugege, kirjutage ja muutke /tmp kataloogis olevate failide atribuute
    • Käivitage programme, kus noexec lipu kasutamine pole keelatud
    • Lugege faile, mille lugemislipp on määratud kõigile kasutajatele.

    Kui meil on vaja midagi enamat teha, vajame Linuxi juurkasutaja õigusi. Rootil on õigus teie failisüsteemis kõike teha, olenemata sellest, millised õigused failile on seatud.

    Logi sisse superkasutajana

    Juurkasutajana sisselogimiseks võite lülituda ühele virtuaalsetest konsoolidest, kasutades näiteks kiirklahvi Ctrl+Alt+F1 ning seejärel sisestada juurkasutaja kasutajanimi ja parool.

    Saate täieliku juurkeskkonna, mis võimaldab kõike teha, kuid see meetod on väga ebapraktiline, kuna kaotate kõik GUI kasutamise eelised.

    Võime teha täiesti vastupidist, sisestage graafilisse sisselogimishaldurisse root login ja selle parool, nii et töölauakeskkond töötaks administraatorina ja saaksime kõik õigused root linux, kuid see valik pole väga soovitatav ja väga ohtlik, võite kogemata kogu süsteemi kahjustada. Seetõttu on see meetod paljudes sisselogimishaldurites keelatud.

    Lülitu terminalis superkasutajale

    Nüüd jõuame millegi huvitavama ja praktilisema juurde. Spetsiaalsete utiliitide abil saate lülitada praeguse terminali emulaatori superkasutaja keskkonda ja täita kõiki järgmisi käske mitte teie, vaid tema nimel, andes nii programmile juur Linuxi õigused. Selle jaoks on utiliit nimega su. Üldiselt võimaldab see utiliit lülituda mitte ainult juurkasutajale, vaid ka teistele kasutajatele, kuid vaikimisi kasutatakse seda root kasutajat. Vaatame seda lähemalt. Su linux käsul on järgmine süntaks:

    $su valikute kasutaja

    Siin on selle peamised valikud:

    • -c, -- käsk- täitke käsk
    • -g, --rühm- määrake peamine kasutajarühm (ainult root jaoks)
    • -G --supp-grupp- täiendavad kasutajarühmad (ainult root jaoks)
    • -, -l, --login- sisselogimisrežiim, kõik keskkonnamuutujad kustutatakse ja lähtestatakse, võttes arvesse uut kasutajat, ning muudetakse ka kodukataloogi
    • -p, --säilita-keskkond
    • -s, --shell- määrake sisselogimiskesta
    • -- versioon- kuvada programmi versioon.

    Nüüd katsetame veidi, et mõista, kuidas käsk su linux töötab.

    Esmalt käivitame su ilma parameetriteta, kuid esmalt loome keskkonnamuutuja, et kontrollida, kuidas see käsk nendega tegeleb:

    Nüüd teeme:

    Vaatame nüüd, mis juhtus:

    whoami
    $pwd
    $ kaja $VAR
    $ kaja $PATH
    $ väljumine

    Nendest käskudest näeme, et oleme nüüd juurkasutaja, kuid kodukataloogi peetakse meie kataloogiks. eelmine kasutaja ja meie muutujat ei salvestatud ja muutuja PATH muutus ka, nüüd lisatakse sinna /sbin tee.

    Nüüd kasutame sisselogimisrežiimi:

    Ja kordame sama kombinatsiooni:

    whoami
    $pwd
    $ kaja $VAR
    $ kaja $PATH
    $ väljumine

    Sama olukord, ainult seekord on seda muudetud kodukataloog sisse juurkataloog. Kuid vajadusel saame oma keskkonnamuutujad salvestada, selleks on valik -p:

    Nagu näete, jääb meie muutuja alles. Samuti saate lülituda mõnele teisele kasutajale. Näiteks:

    Sel viisil superkasutaja õiguste hankimist kasutatakse paljudes distributsioonides, näiteks Debian, OpenSUSE, ArchLINux, Gentoo jne. Kuid Ubuntus, kui algajatele mõeldud distributsioonis, on juurkasutajana sisselogimine keelatud. Seda tehakse seetõttu, et see pole ka väga turvaline, võite unustada, et täidate käsku juur- ja süsteemis valesti. Seetõttu liigume järgmise programmi juurde.

    Juurõiguste hankimine ilma ümberlülitamiseta

    Kõige turvalisema liidese juurutamiseks superkasutaja õigustega töötamiseks Linuxis töötati välja käsk sudo. Vaatame, mis on sudo. See käsk kirjutatakse enne iga käsku, mis tuleb käivitada superkasutajana, ja selle täitmiseks tuleb sisestada mitte root, vaid lihtsalt oma kasutaja parool. Nagu eelmiselgi, on sellel utiliidil oma valikud. Vaatame kõigepealt süntaksit:

    $ sudo valikute käsk

    Programmi valikud:

    • -b- käivitage käivitatud utiliit taustal
    • -E- säästa keskkonnamuutujaid
    • -g- käivitage rühma käsk
    • -H- kasutage kodukataloogi
    • -l- kuvab praeguse kasutaja sudo lubade loendi
    • -r- kasutage käsu jaoks SELinuxi rolli
    • -s- kasutage kesta
    • -u- käivitage käsk kasutajana, kui pole määratud, kasutage root
    • -i- ärge täitke käsku, vaid sisestage shell, mis on samaväärne su-ga -

    Saate teha samu katseid, ainult selle käsu jaoks, et mõista, kuidas käsku sudo kasutada. Näiteks:

    Sudo kasutamine on soovitatav viis käskude käivitamiseks Linuxis juurkasutajana. Nii ei unusta te, millega tegelete, ja teil on kõige väiksem oht ​​süsteemi kahjustada. Kuid on veel üks lahendamata küsimus - mida teha graafilised utiliidid? Sudo käsk ju ei käivita neid, vaid töötab graafiline kest root kasutajana töötamine pole ohutu. Seda me järgmisena vaatleme.

    Graafiliselt rakendused superkasutajana

    Graafiliste rakenduste käitamiseks superkasutajana on olemas spetsiaalsed kommunaalteenused. Nad säilitavad kõik vajalikud keskkonnamuutujad ja õigused. KDE-s on see käsk kdesu ja Gnome'is käsk gksu.

    Tippige lihtsalt gksu või kdesu, millele järgneb soovitud käsk:

    See käsk käivitab superkasutaja õigustega KDE failihalduri. Gnome'is näeb see välja järgmine:

    Programm küsib graafilises aknas parooli ja seejärel avaneb failihaldur.

    Järeldused

    See on kõik. Nüüd teate, kuidas saada Linuxis superkasutaja õigusi, teate, kuidas kasutada käsku sudo ja mis vahe on sudo ja su vahel. Nüüd ei tekita süsteemis lisaõigusi nõudvad programmid teile probleeme. Kui teil on küsimusi, kirjutage kommentaaridesse!