Työskentely Linux-ominaisuuksien kanssa

Johdanto

Linux-ominaisuudet ovat Linux-ytimen erikoisattribuutteja, jotka myöntävät prosesseille ja binäärisuoritettaville tiedostoille erityiset oikeudet, jotka on yleensä varattu prosesseille, joiden todellinen käyttäjätunnus on 0 (juurikäyttäjällä ja vain pääkäyttäjällä on UID 0).

Tässä artikkelissa selitetään joitakin käytettävissä olevia ominaisuuksia, niiden käyttötarkoituksia sekä niiden määrittämistä ja poistamista. Huomaa, että suoritettavien tiedostojen ominaisuuksien asettaminen voi vaarantaa järjestelmän turvallisuuden. Sellaisenaan sinun tulee harkita testaamista ei-tuotantojärjestelmässä ennen ominaisuuksien käyttöönottoa tuotannossa.

Edellytykset

  • Linux-järjestelmä, jossa sinulla on pääkäyttäjän oikeudet (joko pääkäyttäjän tai sudo-käyttöoikeuden omaavan käyttäjän kautta).

Selitys

Pohjimmiltaan ominaisuuksien tavoitteena on jakaa "juuren" voima tiettyihin oikeuksiin, jotta jos prosessia tai binaaria, jolla on yksi tai useampi ominaisuus, hyödynnetään, mahdollinen vahinko on rajoitettu verrattuna samaan prosessiin, joka suoritetaan pääkäyttäjänä.

Ominaisuudet voidaan asettaa prosesseille ja suoritettaville tiedostoille. Prosessi, joka syntyy tiedoston suorittamisesta, voi saada kyseisen tiedoston ominaisuudet.

Linuxissa toteutettuja ominaisuuksia on lukuisia, ja monia on lisätty alkuperäisen julkaisunsa jälkeen. Jotkut niistä ovat seuraavat:

  • CAP_CHOWN: Tee muutoksia tiedostojen käyttäjätunnukseen ja ryhmätunnukseen
  • CAP_DAC_OVERRIDE: Ohita DAC (Discretionary Access Control). Esimerkiksi vto ohittaa luku-/kirjoitus-/suoritusoikeustarkistukset.
  • CAP_KILL: Ohita lupatarkistukset signaalien lähettämiseksi prosesseihin.
  • CAP_SYS_NICE: Nosta prosessien mukavuutta ( Selitys mukavuudesta löytyy täältä )
  • CAP_SYS_TIME: Aseta järjestelmä ja reaaliaikainen laitteistokello

Saat täydellisen luettelon suorittamalla man 7 capabilities.

Ominaisuudet määritetään ryhmissä, nimittäin "sallittu", "perityttävä", "tehokas" ja "ympäristö" säikeille ja "sallittu", "perityttävä" ja "tehokas" tiedostoille. Nämä joukot määrittelevät erilaisia ​​monimutkaisia ​​käyttäytymismalleja, niiden täydellinen selitys ei kuulu tämän artikkelin piiriin.

Kun määrität tiedostoon ominaisuuksia, käytämme melkein aina "sallittua" ja "tehokasta", esimerkiksi CAP_DAC_OVERRIDE+ep. Huomaa +ep, joka tarkoittaa edellä mainittuja joukkoja.

Työskentely tiedostoominaisuuksien kanssa

Vaaditut paketit

On olemassa kaksi pääasiallista välineitä, getcapja setcapjotka voivat vastaavasti tarkastella ja asettaa näitä ominaisuuksia.

  • Debianissa ja Ubuntussa nämä työkalut sisältyvät libcap2-binpakettiin, joka voidaan asentaa:apt install libcap2-bin
  • CentOS:ssä ja Fedorassa libcappaketti tarvitaan:yum install libcap
  • Arch Linuxissa ne tarjoavat libcapmyös:pacman -S libcap

Lukuominaisuudet

Jos haluat nähdä, onko tiedostolle asetettu ominaisuudet, voit suorittaa getcap /full/path/to/binaryesimerkiksi seuraavan:

 root@demo:~# getcap /usr/bin/ping
 /usr/bin/ping = cap_net_raw+ep
 root@demo:~# getcap /usr/bin/rcp
 /usr/bin/rcp = cap_net_bind_service+ep

Jos haluat selvittää, mitkä ominaisuudet on jo asetettu järjestelmällesi, voit etsiä koko tiedostojärjestelmästäsi rekursiivisesti seuraavalla komennolla:

getcap -r /

Koska virtuaaliset tiedostojärjestelmät (kuten /proc) eivät tue näitä toimintoja, yllä oleva komento tuottaa tuhansia virheitä, joten käytä seuraavaa puhtaamman tulosteen saamiseksi:

getcap -r / 2>/dev/null 

Ominaisuuksien määrittäminen ja poistaminen

Jos haluat määrittää tiedostolle tietyn ominaisuuden, käytä setcap "capability_string" /path/to/file.

Voit poistaa kaikki ominaisuudet tiedostosta käyttämällä setcap -r /path/to/file.

Esittelyä varten luomme tyhjän tiedoston nykyiseen hakemistoon, annamme sille mahdollisuuden ja poistamme sen. Aloita seuraavalla:

root@demo:~# touch testfile
root@demo:~# getcap testfile

Toinen komento ei tuota tulosta, mikä tarkoittaa, että tällä tiedostolla ei ole mitään ominaisuuksia.

Määritä seuraavaksi tiedostolle ominaisuus:

root@demo:~# setcap "CAP_CHOWN+ep" testfile
root@demo:~# getcap testfile
testfile = cap_chown+ep

"CAP_CHOWN+ep" käytettiin esimerkkinä, mutta mikä tahansa muu voidaan määrittää tällä tavalla.

Poista nyt kaikki ominaisuudet kohteesta testfile:

root@demo:~# setcap -r testfile
root@demo:~# getcap testfile

Jälleenkään ei ole tulosta, koska "CAP_CHOWN+ep" poistettiin.

Johtopäätös

Ominaisuuksilla on monia käyttömahdollisuuksia, ja ne voivat auttaa parantamaan järjestelmien turvallisuutta. Jos käytät SUID-bittiä suoritettavissa tiedostoissa, harkitse sen korvaamista tietyllä tarvittavalla ominaisuudella.

Jätä kommentti

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja