GNU/Linux >> Znalost Linux >  >> Cent OS

Jak vytvořit uživatelský účet pouze pro čtení v CentOS/RHEL 7

Otázka :Jak vytvořit uživatelský účet, který nemůže zapisovat do žádného souboru v systému? Jinými slovy, jak vytvořit uživatelský účet pouze pro čtení v CentOS/RHEL 7?

Linux neposkytuje klasifikaci účtů na úrovni rolí. Přístupové oprávnění je řízeno na úrovni I-uzlu, což znamená oprávnění pro každý jednotlivý soubor nebo adresář samostatně.

Můžeme-li problém mírně zopakovat, existují alespoň dvě techniky, které mohou poskytnout požadovanou operaci. Místo přemýšlení o uživatelském účtu přemýšlejte v pojmech souborů a adresářů. To nám umožňuje některé alternativní metody k dosažení téměř stejného výsledku. Každá položka níže ukazuje alternativní implementaci, která poskytuje mírně odlišnou ochranu, která může být užitečná v některých případech použití.

Vytvořte si neprivilegovaný anonymní účet

Každý soubor nebo adresář v Linuxu má tři sady oprávnění pro čtení/zápis/spouštění, po jednom pro vlastníka souboru, ostatní uživatele ve stejné skupině jako původní vlastník a všechny ostatní. Nový účet lze vytvořit s jedinečným ID uživatele a ID skupiny a tento nový účet lze použít jako účet pouze pro čtení. Vzhledem k tomu, že účet by nevlastnil žádné soubory mimo svůj domovský adresář, jediným přístupovým oprávněním by byla „jiná“ oprávnění, která obvykle vynechávají povolení pro zápis.

# useradd -c 'Mostly R/O Account' roaccount

roaccount bude mít přiděleno jedinečné ID uživatele a ID skupiny, což nutí jakýkoli soubor mimo jeho domovský adresář, aby byl řízen „jinými“ přístupovými oprávněními. O/S již má účet s nejméně privilegiem nikdo, ale tento účet je systémem ošetřen speciálně. Pro použití R/O se doporučuje samostatný účet.

Chyba v tomto schématu spočívá v tom, že se spoléhá na to, že každý soubor a každý adresář na serveru a úložišti má správně nastavená „jiná“ oprávnění. To lze provést ručně nebo nastavením umask procesu vytváření alespoň na 0002 (což blokuje nastavení „jiných“ oprávnění k zápisu).

Dostávat upozornění, když jsou zapsány určité soubory.

Pokud je cílem určit všechny soubory napsané daným uživatelem, může být užitečný nástroj auditctl. Sledování lze nastavit na systémové volání zápisu, které se spustí, když je provede konkrétní uživatel. Například nastavení:

# auditctl -a always,exit -S write -F auid=1000

by spustil záznam auditní stopy, kdykoli uživatel ID 1000 zapíše do jakéhokoli souboru. Subsystém auditní stopy je poměrně výrazný v podmínkách, které lze vyjádřit.

Další dokumentaci naleznete na manuálové stránce audit.rules.

# man audit.rules

K přepsání oprávnění použijte seznamy řízení přístupu (ACL).

Některé obslužné programy souborového systému podporují seznamy řízení přístupu (ACL), které mají jemnější oprávnění, než dovolují rozdělení vlastník/skupina/ostatní. Jednotlivé soubory nebo adresáře mohou pomocí ACL vybrat určitou skupinu uživatelů, kteří nemusí být nutně ve stejné skupině, a udělit pouze těmto uživatelům požadovaná oprávnění k přístupu k souborům.

Například chceme dát uživatelům A, userB a userC přístup pouze pro čtení do adresáře /secret-files/ a níže. Můžeme to udělat takto:

# setfacl -Rd -m u:userA:rx -m u:userB:rx -m u:userC:rx /secret-files
# setfacl -R  -m u:userA:rx -m u:userB:rx -m u:userC:rx /secret-files

První řádek nastavuje výchozí ACL, které se bude v budoucnu vztahovat na všechny nové soubory nebo adresáře vytvořené pod /secret-files. Druhý soubor aplikuje ACL na jakýkoli existující obsah ve stromu /secret-files a níže.

Další podrobnosti o této funkci najdete na stránce aclman.

# man acl


Cent OS
  1. Jak zmenšit kořenový souborový systém na CentOS / RHEL 6

  2. Jak spustit rsyslog jako uživatel bez root v CentOS/RHEL 7

  3. CentOS / RHEL :Jak přidat odkládací soubor

  1. Jak nainstalovat soubor RPM na OS Linux (CentOS, RHEL a Fedora)

  2. Jak zajistit, aby vyhovoval CentOS/RHEL 7 FIPS 140-2

  3. Jak přidat národní prostředí na CentOS/RHEL 8

  1. Jak přidat uživatele do skupiny na RHEL 8 / CentOS 8

  2. Jak nainstalovat soubor deb v RHEL 8 / CentOS 8 Linux

  3. Jak nainstalovat soubor bin v RHEL 8 / CentOS 8 Linux