GNU/Linux >> Znalost Linux >  >> Linux

Jak auditovat oprávnění pomocí příkazu find

Přiznejme si to:Souborový systém Linuxu může být složitý. Přidejte připojené vzdálené souborové systémy, vyměnitelná média a jakékoli adresáře specifické pro server, které jste vytvořili, a vy nebo vaši uživatelé mohou mít potíže s zapamatováním, kde je daný soubor přesně uložen. To je místo find Přichází příkaz. Umožňuje vyhledávat soubory nebo adresáře na základě různých kritérií. Udělám základní recenzi find níže, ale zaměření tohoto článku je trochu jiné:Najít zdroje podle oprávnění.

Proč musím hledat podle oprávnění?

  • Bezpečnostní audit
  • Řešení problémů se stížnostmi uživatelů na přístup
  • Odstraňování problémů s přístupem aplikací

Rychlý příklad hledání podle názvu

Existují další články na téma Povolit Sysadmin, které pokrývají find efektivně velet. Příkaz zde však rychle shrnu.

Syntaxe:

find (where to search) (what to search for)

Příklad:

# find /etc -name rsyslog
# find /home/user01 -type d

Tento článek se však zaměřuje na použití -perm možnost, která vyhledává na základě nastavení oprávnění.

Absolutní režim versus symbolický režim

Připomeňme, že oprávnění se nastavují pomocí chmod příkaz. chmod příkaz rozpozná absolutní režim i symbolický režim. Přečtěte si můj nedávný článek Jak spravovat oprávnění pro uživatele, skupiny a další v systému Linux, kde naleznete přehled správy přístupu ke zdrojům, včetně těchto dvou režimů. find příkaz také rozpozná oba režimy, takže můžete použít ten, který je pro vás nejpřirozenější. Pro mě je to absolutní režim. Abyste mohli efektivně používat find -perms, musíte si připomenout několik věcí o absolutním režimu a symbolickém režimu příkaz.

Absolutní režim

Absolutní režim používá k reprezentaci oprávnění osmičkové hodnoty. Hodnoty jsou uvedeny v pořadí jako oprávnění k přiřazení uživateli, skupině a všem ostatním.

Například:

# chmod 764 file1

Nastaví uživatele s 7 (rwx), seskupte pomocí 6 (rw) a další s 4 (r) pro file1 .

Symbolický režim

Symbolický režim používá symboly k vyjádření úrovní přístupu a používá matematické operátory k zadání (+ ) nebo odebrat (- ) oprávnění.

Například:

# chmod o+rw file1

Dává ostatní identitu přečíst a pište do file1 .

Najděte oprávnění zdrojů pomocí absolutního režimu

Nejzákladnější hledání oprávnění nepoužívá žádné další parametry. Příkaz zní jako "najít zdroj s těmito oprávněními."

Například:

# find /etc -perm 777

Příkaz zní:Prohledejte /etc adresář pro prostředky s 777 úroveň přístupu (rwx pro všechny identity).

Výše uvedený příklad najde pouze zdroje s přesně zadaným oprávněním – nic více a nic méně. Co když potřebujete trochu více flexibility? Existují dva další parametry, které mohou být velmi užitečné. První je - znak (pomlčka) a druhý je / znak (lomítko). Podívejme se na oba.

Najít podle -

Použití - volba znamená "je nastavena alespoň tato úroveň oprávnění a jakákoli vyšší oprávnění."

Příklad:

# find . -perm -644

Tento příklad zobrazuje všechny prostředky v aktuálním adresáři s alespoň 644 oprávnění.

Najít podle /

Použití / volba znamená "jsou nastavena všechna uvedená oprávnění."

Příklad:

# find . -perm /644

Tento příklad zobrazuje prostředky s 644 nebo vyšší oprávnění.

Zjistěte oprávnění zdrojů pomocí symbolického režimu

Symbolický režim používá ugo symboly (uživatel, skupina, ostatní), rwx symboly (čtení, zápis, spouštění) a matematické operátory (například + nebo - ) k definování oprávnění.

Najít podle -

- volba funguje v symbolickém režimu stejně jako výše v absolutním režimu. Zobrazuje zdroje s "alespoň touto úrovní přístupu."

Příklad:

# find -perm -u+w,g+w

Najít podle /

/ funguje stejně v symbolickém režimu. Zobrazuje zdroje s "jakýmikoli uvedenými oprávněními."

Příklad:

# find -perm /u+w,g+w

Standardní oprávnění Linuxu jsou velmi běžná a nyní víte, jak vyhledávat prostředky s konfigurovanou danou úrovní přístupu. Linux však také využívá výhod zvláštních oprávnění . find příkaz může zobrazit tato oprávnění také.

Najděte zdroje se speciálními nakonfigurovanými oprávněními

Speciální oprávnění Linuxu nastavují další řízení přístupu ke zdrojům. Existují tři speciální oprávnění:Set User ID (SUID), Set Group ID, (SGID) a Sticky Bit. Podrobnosti každého jsou mimo rozsah tohoto článku, ale dovolte mi to rychle shrnout:

Zvláštní oprávnění Popis
SUID Soubor je spuštěn uživatelem s identitou vlastníka, i když tento uživatel vlastníkem není
SGID Obsah adresáře automaticky zdědí skupinové přidružení nadřazené složky (skvělé pro adresáře sdílené projektovými týmy)
Sticky Bit Soubor se automaticky načte do paměti a nikdo jiný než vlastník jej nemůže smazat ani změnit

Další informace o zvláštních oprávněních naleznete v tomto článku.

Speciální oprávnění se konfigurují pomocí čtvrtého bitu (zcela vlevo):

  • SUID =4
  • SGID =2
  • Sticky Bit =1

Tip :Výstup parametru ls -l příkaz zobrazí s v poli spustitelného souboru pro uživatele, pokud je nakonfigurováno SUID, s v poli spustitelného souboru pro skupinu, pokud je nakonfigurováno SGID, a T nebo t pokud je nastaven Sticky Bit (v závislosti na tom, zda je nastaveno také spuštění).

Následující obsah pokrývá vyhledávání souborů se specifickými speciálními nakonfigurovanými oprávněními.

Najít soubory s nakonfigurovaným SUID

Chcete-li najít soubory, kde je definována úroveň přístupu SUID, použijte -perm možnost, ale zahrňte čtvrtou číslici. SUID má osmičkovou hodnotu 4 .

Chcete-li například vyhledat prostředky s nakonfigurovaným SUID:

# find /usr/bin -perm 4755

Najít soubory s nakonfigurovaným SGID

Stejnou syntaxi můžete použít k zobrazení zdrojů s oprávněním SGID definovaným pomocí osmičkové hodnoty SGID 2 .

Chcete-li například vyhledat zdroje s nakonfigurovaným SGID:

# find /usr/bin -perm 2755

Najděte soubory s nakonfigurovaným Sticky Bit

Nakonec můžete použít osmičkovou hodnotu 1 pro zobrazení zdrojů s nakonfigurovaným Sticky Bit.

Zde je příklad Sticky Bit:

# find /etc -perm /1444

Poznámka :- a / parametry fungují se speciálními oprávněními stejně jako se standardními oprávněními.

[ Ostatní čtenáři si užili: Základy správce systému Linux:Správa uživatelských účtů ]

Příklady bonusů

Zde je několik dalších příkazů, které mohou být užitečné pro zobrazení oprávnění. Při psaní článku jsem stále přemýšlel:Počkat, co s tím? a poté přidávání bonusových příkladů. Zde je tedy několik dalších příkazů pro audit oprávnění.

Bonus 1:Použijte -not k negaci výsledků

Můžete použít -not možnost pomocí find specifikovat cokoli, co neodpovídá daným kritériím.

První příklad ukazuje normální find pokus a druhý zobrazí find s -not .

# find /etc/network -perm 777

Výše uvedený příklad zobrazuje zdroje v /etc/network které dělají mají 777 nakonfigurována oprávnění.

# find /etc/network -not -perm 777

Tento příklad zobrazuje prostředky uvnitř /etc/network které mají jakákoli jiná oprávnění než 777 nakonfigurováno.

Bonus 2:Nastavte oprávnění pomocí find a chmod

Jedna z výhod find je, že obsahuje funkci provedení. Můžete to kombinovat s následnými příkazy, jako je xargs , rm nebo chmod .

# find -perm -111 -exec chmod -R 777 {} \;

V tomto příkladu {} znaky představují výsledky find příkaz a \; znaky představují ukončení chmod příkaz.

Upozornění :Buďte opatrní, abyste přesně pochopili, jaký bude účinek vašeho kombinovaného provádění příkazů „najít + další“. Překlep lze snadno find všechny soubory v /etc a poté se je pokuste odstranit nebo nakonfigurovat oprávnění, která uzamknou legitimní uživatele z jejich domovských adresářů.

Bonus 3:Zobrazení oprávnění pomocí ls a grep

Někdy nepotřebujete pokročilé funkce find příkaz. Místo toho potřebujete rychlé a snadné zobrazení konkrétních oprávnění. V takovém případě se spolehněte na ls a grep příkazy.

Příklad:

# ls -l | grep rwxrw-r--

Tento příkaz zobrazí veškerý obsah adresáře se zadanými oprávněními.

Bonus 4:Zobrazení oprávnění ACL

find příkaz snadno nezobrazí soubory s aplikovanými oprávněními Access Control List (ACL). V takovém případě použijte getfacl místo toho příkaz.

Příklad:

# getfacl file1

Další informace o seznamech řízení přístupu naleznete v části Úvod do seznamů řízení přístupu (ACL) systému Linux.

Sbalit

find command je užitečný nástroj pro zobrazení adresářů nebo souborů, které potřebujete najít. Find však může být také skvělým bezpečnostním nástrojem, protože zobrazuje adresáře a soubory se zadanými oprávněními. Jako správce systému můžete tyto informace použít k zajištění toho, aby byly prostředky serveru nastaveny podle zásad zabezpečení vaší společnosti. Nezapomeňte, že můžete použít >> přesměrovač k dokumentaci těchto oprávnění. Takový dokument lze použít jako základ oprávnění pro budoucí audity.

[ Přemýšlíte o bezpečnosti? Podívejte se na tohoto bezplatného průvodce posílením zabezpečení hybridního cloudu a ochranou vaší firmy. ] 


Linux
  1. Najděte soubory a adresáře v Linuxu pomocí příkazu find

  2. Jak používat Linuxový příkaz find k hledání souborů

  3. Jak zkombinovat příkaz „tar“ s příkazem „najít“

  1. Hledání souborů v příkazovém řádku (jak na to)

  2. Jak najít duplicitní soubory v Linuxu? Nápověda je zde s příkazem fdupes!

  3. Jak najít soubory pomocí příkazu fd v Linuxu

  1. Jak najít soubory v CentOS 8 na příkazovém řádku

  2. Jak najít proces s maximálním počtem deskriptorů souborů?

  3. Jak zjistit počet jader v Ubuntu