Munkavégzés Linux képességekkel

Bevezetés

A Linux képességei a Linux kernel speciális attribútumai, amelyek a folyamatokhoz és a bináris végrehajtható fájlokhoz specifikus jogosultságokat biztosítanak, amelyek általában olyan folyamatok számára vannak fenntartva, amelyek tényleges felhasználói azonosítója 0 (a root felhasználónak és csak a root felhasználónak UID 0-a van).

Ez a cikk ismerteti néhány elérhető képességet, azok felhasználását, valamint a beállításukat és eltávolításukat. Kérjük, vegye figyelembe, hogy a futtatható fájlok képességeinek beállítása veszélyeztetheti a rendszer biztonságát. Ezért érdemes megfontolni egy nem termelési rendszeren való tesztelést, mielőtt a képességeket élesben implementálja.

Előfeltételek

  • Olyan Linux rendszer, amelyen root hozzáféréssel rendelkezik (akár a root felhasználón keresztül, akár egy sudo hozzáféréssel rendelkező felhasználón keresztül).

Magyarázat

Lényegében a képességek célja az, hogy a „root” hatalmát meghatározott jogosultságokra osszák fel, így ha egy vagy több képességgel rendelkező folyamatot vagy binárist kihasználnak, a potenciális károk korlátozottak, ha összehasonlítjuk ugyanazzal a folyamattal, amely rootként fut.

A képességek a folyamatokon és a végrehajtható fájlokon állíthatók be. Egy fájl végrehajtásából származó folyamat megszerezheti a fájl képességeit.

A Linuxon megvalósított képességek számosak, és az eredeti kiadás óta sokat hozzáadtak. Néhány közülük a következő:

  • CAP_CHOWN: A fájlok felhasználói azonosítójának és csoportazonosítójának módosítása
  • CAP_DAC_OVERRIDE: DAC (Diszkrecionális hozzáférés-vezérlés) felülírása. Például a vto megkerüli az olvasási/írási/végrehajtási engedélyek ellenőrzését.
  • CAP_KILL: Az engedélyek megkerülése a jelek folyamatokhoz való küldéséhez.
  • CAP_SYS_NICE: Emelje fel a folyamatok szépségét ( A kedvesség magyarázata itt található )
  • CAP_SYS_TIME: A rendszer és a valós idejű hardveróra beállítása

A teljes lista megtekintéséhez futtassa a parancsot man 7 capabilities.

A képességek készletekben vannak hozzárendelve, nevezetesen "engedélyezett", "örökölhető", "hatékony" és "környezeti" a szálaknál, valamint "engedélyezett", "örökölhető" és "hatékony" a fájlok esetében. Ezek a halmazok különböző összetett viselkedéseket határoznak meg, teljes magyarázatuk túlmutat jelen cikk keretein.

A képességek fájlban való beállításakor szinte mindig az "engedélyezett" és a "hatékony" kifejezéseket fogjuk használni, például CAP_DAC_OVERRIDE+ep. Figyeljük meg a +ep, amely a fent említett halmazokat jelöli.

Fájlképességekkel való munka

Szükséges csomagok

Két fő eszköze, getcapés setcapamely rendre megtekinteni, és ezeket az attribútumokat.

  • Debian és Ubuntu esetén ezeket az eszközöket a libcap2-bincsomag biztosítja, amely a következőkkel telepíthető:apt install libcap2-bin
  • CentOS és Fedora esetén a libcapcsomag szükséges:yum install libcap
  • Arch Linuxon ezeket is biztosítják libcap:pacman -S libcap

Olvasási képességek

Ha meg szeretné tekinteni, hogy egy fájl rendelkezik-e képességekkel, egyszerűen futtassa getcap /full/path/to/binarya következőt:

 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

Ha meg szeretné tudni, hogy mely képességek vannak már beállítva a rendszeren, kereshet a teljes fájlrendszerben rekurzív módon a következő paranccsal:

getcap -r /

Tekintettel arra, hogy a virtuális fájlrendszerek (például /proc) nem támogatják ezeket a műveleteket, a fenti parancs több ezer hibát produkál, ezért a tisztább kimenet érdekében használja a következőket:

getcap -r / 2>/dev/null 

Képességek hozzárendelése és eltávolítása

Egy adott képesség beállításához használja a fájlt setcap "capability_string" /path/to/file.

A fájl összes funkciójának eltávolításához használja a setcap -r /path/to/file.

A demonstrációhoz létrehozunk egy üres fájlt az aktuális könyvtárban, lehetőséget adunk neki, majd eltávolítjuk. Kezdje a következővel:

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

A második parancs nem ad ki kimenetet, vagyis ez a fájl nem rendelkezik semmilyen képességgel.

Ezután állítson be egy képességet a fájlhoz:

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

Példaként a „CAP_CHOWN+ep” volt használva, de bármely más is hozzárendelhető ilyen módon.

Most távolítson el minden képességet a következőről testfile:

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

Ismét nem lesz kimenet, mert a "CAP_CHOWN+ep" eltávolításra került.

Következtetés

A képességeknek számos lehetséges felhasználási területük van, és segíthetnek a rendszer biztonságának szigorításában. Ha a SUID bitet használja a végrehajtható fájlokon, fontolja meg annak cseréjét a szükséges képességekkel.

Hagyj kommentárt

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Ez az oktatóanyag végigvezeti Önt a Vultrs rendszerekkel kompatibilis Windows ISO létrehozásának folyamatán. Itt megtanulhatja az <>Windows ISO<> előállításának lépéseit az NTLite segítségével.

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.