GNU/Linux >> Znalost Linux >  >> Linux

Jak spravovat možnosti souborů Linux

Proces Linuxu je tradičně buď privilegovaný (běží jako root), nebo bez oprávnění. Privilegované procesy nepodléhají kontrole oprávnění jádra, a proto mají plnou moc nad systémem. Schopnost je odlišné a nezávislé oprávnění, které může proces použít k obcházení určitých kontrol oprávnění. Schopnosti byly poprvé představeny v Linuxu 2.2 a několik dalších bylo přidáno v pozdějších verzích. Obvykle jsou nastaveny na spustitelné soubory a jsou automaticky uděleny procesu, když je spuštěn soubor s funkcí. Schopnosti v podstatě rozdělují sílu uživatele root do samostatných oprávnění, což zlepšuje zabezpečení omezením přístupu, který by útočník získal zneužitím nebo zneužitím služby.

Tato příručka představí některé běžně používané funkce a ukáže, jak je lze prohlížet a upravovat.

Běžné schopnosti

Linuxové jádro implementuje velké množství funkcí. Některé z nich jsou:

  • CAP_SYS_ADMIN:Umožňuje širokou škálu operací. Této schopnosti je třeba se vyhnout ve prospěch specifičtějších schopností.
  • CAP_CHOWN:Proveďte změny ID uživatele a ID skupiny souborů 
  • CAP_DAC_READ_SEARCH:Vynechá čtení souborů a kontroly čtení/spouštění adresáře. Program s touto schopností lze použít ke čtení libovolného souboru v systému.
  • CAP_DAC_OVERRIDE:Přepíše DAC (Discretionary Access Control), tj. vynechá kontroly oprávnění ke čtení/zápisu/spouštění. Tato schopnost uděluje spustitelnému souboru schopnost přistupovat a upravovat jakýkoli soubor v souborovém systému.
  • CAP_NET_BIND_SERVICE:Umožňuje vazbu na čísla portů nižší než 1024.
  • CAP_KILL:Obejít kontroly oprávnění pro odesílání signálů procesům, jako jsou SIGHUP a SIGKILL.
  • CAP_SYS_NICE:Upravte mimo jiné hodnotu zdvořilosti a prioritu plánování procesů.
  • CAP_SYS_RESOURCE:Umožňuje přepsat různé limity systémových prostředků, jako jsou diskové kvóty, limity času CPU atd.

Úplný seznam je k dispozici na manuálové stránce schopností(7).

Souborům lze přiřadit možnosti ve 3 různých sadách:povolené, dědičné a efektivní. Vlákna mají 2 další sady:ambient a bounding. Každá sada může obsahovat nula nebo více funkcí, s výjimkou efektivní sady pro soubory, což je ve skutečnosti jeden bit. Tyto sady definují komplexní chování jádra, které přesahuje rámec tohoto průvodce. Při přiřazování schopností souborům ve většině případů použijeme povolené a efektivní sady.

POZNÁMKA:SELinux může narušovat funkce. Na systémech s SELinux v režimu vynucení může bránit procesům ve využívání jejich schopností.

Požadované nástroje

Existují dva různé balíčky pro správu schopností:libcap a libcap-ng. Druhý je navržen tak, aby byl jednodušší než první. Oba jsou popsány v této příručce.

libcap poskytuje getcap a setcap pro prohlížení a nastavení možností souborů, zatímco libcap-ng sjednocuje obě funkce do jednoho nástroje, filecap.

libcap

Instalace

V Debianu, Ubuntu a dalších distribucích založených na Debianu lze nástroje libcap nainstalovat pomocí:

apt update
apt install libcap2-bin

Pro instalaci na CentOS použijte následující příkaz:

yum install libcap

Pro instalaci na Fedoru použijte následující příkaz:

dnf install libcap

Pro instalaci na Arch použijte následující příkaz:

pacman -Sy libcap

Využití

getcap jednoduše zobrazuje možnosti přiřazené souboru, pokud nějaké existují. Použijte následující syntaxi:

getcap /path/to/binary

Například:

Getcap může také vyhledávat rekurzivně pomocí parametru -r. Například:

POZNÁMKA:2>/dev/null se používá, aby se zabránilo zahlcení výstupu chybami "Operace není podporována", ke kterým dochází, když se getcap pokouší získat schopnosti souborů v /sys, /proc atd. Tyto speciální virtuální souborové systémy nepodporují schopnosti.

Chcete-li nastavit možnosti souboru pomocí setcap, použijte následující syntaxi:

setcap CAP+set filename

Chcete-li například přidat CAP_CHOWN a CAP_DAC_OVERRIDE k povoleným a účinným sadám, použijte:

setcap CAP_CHOWN,CAP_DAC_OVERRIDE+ep file1

Chcete-li odebrat funkce ze souboru, použijte parametr -r:

setcap -r filename

Zde je několik dalších příkladů:

libcap-ng

Instalace

Chcete-li nainstalovat na Debian, Ubuntu a další distribuce založené na Debianu:

apt update
apt install libcap-ng-utils

Instalace na CentOS:

yum install libcap-ng-utils

Instalace na Fedoru:

dnf install libcap-ng-utils

Instalace na Arch:

pacman -Sy libcap-ng

Využití

  • Program filecap odkazuje na možnosti bez předpony "CAP_" (například NET_ADMIN místo CAP_NET_ADMIN).
  • filecap nepracuje s relativními cestami, očekává úplnou cestu při předávání souborů nebo adresářů jako argumentů.
  • filecap neumožňuje specifikovat sady schopností, při nastavování schopností vždy používá povolené a efektivní.

Chcete-li zobrazit možnosti přiřazené souboru:

filecap /full/path/to/file

Chcete-li prohledat adresář rekurzivně, použijte:

filecap /full/path/to/dir

Chcete-li prohledat celý souborový systém pomocí filecap, použijte jeden z následujících příkazů:

filecap /
filecap -a

Zde je několik příkladů použití filecap k prozkoumání souborů a adresářů:

Chcete-li nastavit schopnost souboru, použijte syntaxi:

filecap /full/path/to/file cap_name

Například:

filecap /usr/bin/tac dac_override

Chcete-li odebrat funkce, použijte tuto syntaxi:

filecap /full/path/to/file none

Zde je několik příkladů nastavení a odebrání funkcí pomocí filecap:

Závěr

Schopnosti jsou výkonnou funkcí jádra s širokými bezpečnostními aplikacemi. Kdykoli je to možné, měly by být nahrazeny úplnými oprávněními a kořenovým SUID.


Linux
  1. Jak vytvořit swap v Linuxu

  2. Jak vytvořit odkládací soubor v Linuxu

  3. Jak vyprázdnit soubor protokolu v Linuxu

  1. Jak spravovat heslo účtu v Linuxu

  2. Jak spravovat swapovací oddíl v Linuxu

  3. Jak připojit soubor iso v Linuxu

  1. Jak přesunout soubor v Linuxu

  2. Jak najít soubor v Linuxu

  3. Jak přejmenovat soubor v Linuxu?