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.


Telepítse a Plesket a CentOS 7 rendszeren

Telepítse a Plesket a CentOS 7 rendszeren

Más rendszert használ? A Plesk egy szabadalmaztatott webtárhely-vezérlőpult, amely lehetővé teszi a felhasználók számára, hogy adminisztrálják személyes és/vagy ügyfeleik webhelyeit, adatbázisait

A Cacti beállítása a Debian Jessie-n

A Cacti beállítása a Debian Jessie-n

Bevezetés A Cacti egy nyílt forráskódú megfigyelő és grafikus eszköz, amely teljes mértékben az RRD adatokon alapul. A Cactuson keresztül szinte bármilyen típusú eszközt felügyelhet

Telepítse a Lets Encrypt SSL-t az egykattintásos WordPress alkalmazásban

Telepítse a Lets Encrypt SSL-t az egykattintásos WordPress alkalmazásban

Bevezetés A Lets Encrypt egy hitelesítésszolgáltató szolgáltatás, amely ingyenes TLS/SSL-tanúsítványokat kínál. A telepítés folyamatát a Certbot leegyszerűsíti,

Tekkit Classic kiszolgáló beállítása Ubuntu 16.10 rendszeren

Tekkit Classic kiszolgáló beállítása Ubuntu 16.10 rendszeren

Más rendszert használ? Mi az a Tekkit Classic? A Tekkit Classic egy modpack ahhoz a játékhoz, amelyet mindenki ismer és szeret; Minecraft. Tartalmaz néhányat a ver

Az iRedMail beállítása a Debian Wheezy rendszeren

Az iRedMail beállítása a Debian Wheezy rendszeren

Más rendszert használ? Ez az oktatóanyag megmutatja, hogyan telepítheti a csoportmunka iRedMail programot a Debian Wheezy friss telepítésére. Használnia kell egy szervát

Jekyll blog létrehozása Ubuntu 16.04-en

Jekyll blog létrehozása Ubuntu 16.04-en

Más rendszert használ? A Jekyll nagyszerű alternatíva a WordPress helyett blogíráshoz vagy tartalommegosztáshoz. Nem igényel adatbázist, és nagyon egyszerű i

Felügyelet nélküli frissítések beállítása Debian 9-en (Stretch)

Felügyelet nélküli frissítések beállítása Debian 9-en (Stretch)

Más rendszert használ? Ha Debian szervert vásárol, akkor mindig rendelkeznie kell a legújabb biztonsági javításokkal és frissítésekkel, akár alszik, akár nem

A PHP 7.0 vagy PHP 7.1 telepítése és konfigurálása Ubuntu 16.04 rendszeren

A PHP 7.0 vagy PHP 7.1 telepítése és konfigurálása Ubuntu 16.04 rendszeren

A PHP és a kapcsolódó csomagok a leggyakrabban használt összetevők a webszerverek telepítésekor. Ebben a cikkben megtudjuk, hogyan kell beállítani a PHP 7.0 vagy PHP 7.1 o verzióját

A Squid Proxy telepítése a CentOS rendszeren

A Squid Proxy telepítése a CentOS rendszeren

A Squid egy népszerű, ingyenes Linux-program, amely lehetővé teszi továbbítási webproxy létrehozását. Ebben az útmutatóban megtudhatja, hogyan telepítheti a Squid-et a CentOS rendszerre, hogy megfordítsa

A Lighttpd (LLMP Stack) telepítése a CentOS 6 rendszeren

A Lighttpd (LLMP Stack) telepítése a CentOS 6 rendszeren

Bevezetés A Lighttpd az Apache forkja, amely sokkal kevésbé erőforrás-igényes. Könnyű, innen kapta a nevét, és meglehetősen egyszerű a használata. Telepítés

Három ingyenes szervervezérlő panel (gyors telepítés)

Három ingyenes szervervezérlő panel (gyors telepítés)

1. Virtualmin/Webmin A Virtualmin egy hatékony és rugalmas web hosting vezérlőpanel Linux és UNIX rendszerek számára, amely a jól ismert nyílt forráskódú webbázison alapul.

Yii alkalmazás beállítása Ubuntu 14.04-en

Yii alkalmazás beállítása Ubuntu 14.04-en

A Yii egy PHP-keretrendszer, amely lehetővé teszi alkalmazások gyorsabb és egyszerűbb fejlesztését. A Yii telepítése Ubuntura egyszerű, amint azt pontosan megtudhatja

A képernyő használata Ubuntu 14.04-en

A képernyő használata Ubuntu 14.04-en

A Screen egy olyan alkalmazás, amely lehetővé teszi a terminálmunkamenetek többszöri használatát egy ablakon belül. Ez lehetővé teszi több terminálablak szimulálását, ahol ez ma

Állítsa be a saját DNS-kiszolgálóját a Debian/Ubuntu rendszeren

Állítsa be a saját DNS-kiszolgálóját a Debian/Ubuntu rendszeren

Ez az oktatóanyag elmagyarázza, hogyan állíthat be DNS-kiszolgálót a Bind9 használatával Debian vagy Ubuntu rendszeren. A cikkben ennek megfelelően helyettesítse be a saját-domain-neve.com címet. TH-nál

A Logrotate használata naplófájlok kezelésére

A Logrotate használata naplófájlok kezelésére

Bevezetés A Logrotate egy Linux segédprogram, amely leegyszerűsíti a naplófájlok kezelését. Általában naponta egyszer fut egy cron-feladaton keresztül, és kezeli a naplóbázist

A statikus hálózat és az IPv6 konfigurálása CentOS 7 rendszeren

A statikus hálózat és az IPv6 konfigurálása CentOS 7 rendszeren

A VULTR a közelmúltban változtatásokat hajtott végre a saját oldalukon, és most már mindennek jól kell működnie, ha a NetworkManager engedélyezve van. Ha szeretné letiltani

Az Icinga2 módosítása a mester/kliens modell használatához CentOS 6 vagy CentOS 7 rendszeren

Az Icinga2 módosítása a mester/kliens modell használatához CentOS 6 vagy CentOS 7 rendszeren

Az Icinga2 egy hatékony felügyeleti rendszer, és mester-kliens modellben használva helyettesítheti az NRPE-alapú felügyeleti ellenőrzések szükségességét. A mester-kliens

A Red5 Media Server beállítása az Ubuntu 16.04 rendszeren

A Red5 Media Server beállítása az Ubuntu 16.04 rendszeren

Más rendszert használ? A Red5 egy Java nyelven megvalósított nyílt forráskódú médiaszerver, amely lehetővé teszi többfelhasználós Flash-alkalmazások, például élő streamin futtatását.

Fordítsa le és telepítse az Nginx-et a PageSpeed ​​Modul segítségével a Debian 8 rendszeren

Fordítsa le és telepítse az Nginx-et a PageSpeed ​​Modul segítségével a Debian 8 rendszeren

Ebben a cikkben látni fogjuk, hogyan fordíthatja le és telepítheti az Nginx fővonalat az Nginx hivatalos forrásaiból a PageSpeed ​​modullal, amely lehetővé teszi a

Az Apache Cassandra 3.11.x telepítése Ubuntu 16.04 LTS rendszeren

Az Apache Cassandra 3.11.x telepítése Ubuntu 16.04 LTS rendszeren

Más rendszert használ? Az Apache Cassandra egy ingyenes és nyílt forráskódú NoSQL adatbázis-kezelő rendszer, amelyet úgy terveztek, hogy biztosítsa a méretezhetőséget,

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.

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.

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 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é.

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket