GNU/Linux >> Znalost Linux >  >> Linux

Koncepty oprávnění souborů Linux

Tento článek se zabývá základními koncepty oprávnění souborů Linux®. Začíná se základy a přechází k pokročilejším tématům. Poskytuje také několik praktických příkladů. Chcete-li získat úvod do oprávnění k souborům a naučit se, jak zobrazit oprávnění k souborům, přečtěte si část Kontrola oprávnění souborů Linux pomocí ls.

Přístup k souboru

Ve víceuživatelském prostředí, jako je Linux, je důležité řídit, kteří uživatelé mohou upravovat nebo mazat různé soubory v systému. Tato kontrola není jen nezbytným bezpečnostním opatřením – zabraňuje katastrofickým nehodám. Pokud uživatel může ovlivnit pouze minimální počet souborů, je menší šance, že špatně zadaný příkaz nebo překlep ve skriptu zničí důležitý soubor nebo zveřejní důvěrné informace na veřejném webu.

Než prozkoumáte jak Chcete-li spravovat přístup k souborům, musíte nejprve porozumět pojmům vlastnictví souborů a oprávnění k souborům. Všimněte si, že vlastnictví a oprávnění platí také pro adresáře, protože adresáře jsou v zásadě speciálním druhem souborů, pokud jde o souborový systém. I když existují určité rozdíly pro adresáře, základní koncepty jsou stejné, takže většina konceptů oprávnění souborů nebo příkazů uvedených v tomto článku platí i pro adresáře.

Základy vlastnictví

Každý soubor a adresář v systému souborů Linux má vlastníka. Vlastník afile dostane oprávnění k souboru. Pokud uživatel mom123 vlastní souborlawndarts , potřebujete povolení od mom123 hrát s lawndarts . Shemona vám může poskytnout přístup, úplně vám přístup k němu odepřít nebo vám jen umožní podívat se nalawndarty aniž byste si s tím museli hrát.

Uživatel, který vlastní soubor, může nastavit nebo změnit jeho oprávnění a určit, kdo (včetně vlastníka) může soubor číst, spouštět, měnit nebo mazat. Je to jednoduché privilegium, ale má dalekosáhlý dopad.

Skupina souborů

Zatímco každý soubor má uživatele, který jej vlastní a může ovládat jeho oprávnění, každý soubor také patří do skupiny . Skupina popisuje sadu uživatelů, kteří sdílejí oprávnění k souborům, která se mohou lišit od typického uživatele. Uživatel může patřit do více než jedné skupiny, ale soubor může být pouze v jedné skupině.

Skupinové vlastnictví je praktický způsob, jak umožnit vlastníkovi souboru přiřadit jednu sadu oprávnění k souboru pro lidi, které nezná („Můžeš se dívat, ale nemůžeš se dotknout.“) a další sadu oprávnění pro lidi, kterým důvěřuje. („Můžete se dívat a dotýkat se. Ale nikdo jiný to nedokáže.“).

Změna vlastnictví

Typický uživatel může ovládat oprávnění souboru, ale nemůže přiřadit vlastnictví jinému uživateli. Chcete-li změnit vlastnictví, musíte použít superuživatele, běžně známého jako root .

Pokud nejste přihlášeni jako root , měli byste použít sudo příkaz k použití rootprivileges ke změně vlastníka souboru.

Systém souborů je flexibilnější, pokud jde o změnu skupiny souboru. Stále můžete uživatelská oprávnění root pro změnu skupiny, ale pokud vlastník souboru patří do cílové skupiny, vlastník souboru může také přepnout soubor do cílové skupiny.

Příkaz chown

Hlavní příkaz používaný ke změně vlastníka nebo skupiny souboru je chown . Nejběžnější syntaxe používaná s chown je zobrazen v následujícím příkladu:

chown user:group file1 file2 file3

user v předchozím příkladu je uživatel, kterému chcete soubor vlastnit, a group je skupina, do které chcete, aby soubor patřil. Dvojtečka odděluje dva prvky příkazu. Po dvojici uživatele a skupiny vypíšete jeden nebo více souborů ovlivněných změnou.

Poznámka :chown také přijímá tečku místo dvojtečky při oddělování názvů uživatelů a skupin. Použití období je zastaralé, ale stále podporované a můžete ho vidět ve starých skriptech nebo dokumentaci. Pokud je to možné, měli byste použít dvojtečku.

Můžete vynechat uživatele nebo skupinu, ale ne obojí. Pokud chcete změnit pouze vlastníka souboru, můžete použít následující syntaxi:

chown user file1

Pokud máte uživatelské jméno obsahující tečku a nechcete skupinu měnit, vložte za uživatele dvojtečku, jak je znázorněno v následujícím příkladu:

chown john.smith: file1

Pokud chcete použít chown chcete-li pouze změnit skupinu, nezapomeňte před název skupiny vložit dvojtečku, i když nebudete specifikovat uživatele, jak je uvedeno v následujícím příkladu:

chown :group file1
Příkaz chgrp

Pokud nechcete používat dvojtečku, když chcete pouze změnit skupinu pro afile, můžete použít chgrp jak ukazuje následující příklad:

chgrp group file1

Funguje to stejně jako chown :group file1 , ale je snazší psát a číst.

Volba -R

Pokud chcete změnit vlastníka konkrétního adresáře a jeho souborů a podadresářů, použijte -R možnost provést rekurzivní změnu, jak je znázorněno v následujícím příkladu:

chown -R user:group directoryname

-R volba funguje s chgrp také. U obou příkazů se změna nejprve aplikuje na nadřazený adresář a poté se iteruje vším v adresáři (včetně podadresářů).

Symbolické odkazy (symlinky) vyžadují speciální zacházení pro chown nebo chgrp operace. Symbolický odkaz je alias pro jiný soubor, podobný zástupce v Microsoft® Windows®. Spíše než aplikování změny na samotný symbolický odkaz systém souborů aplikuje změnu na cíl symbolického odkazu. Pokud tedy symbolický odkaz odkaz odkazuje na soubor soubor.txt , zvažte následující příkaz:

chown user:group link

Když se tento příkaz spustí, systém změní vlastníka a skupinu cílového souboru soubor.txt . Vlastnictví symbolického odkazu, odkaz zůstává beze změny.

Pokud chcete změnit vlastníka nebo skupinu symbolického odkazu, použijte -h příznak pro chown a chgrp , jak ukazuje následující příklad:

chown -h user:group link

Základní informace o oprávnění

Oprávnění se skládají ze dvou částí:co někdo smí se souborem dělat a kdo ten někdo může být.

Co je povoleno

Existují tři kategorie uživatelských akcí pro soubory a adresáře:čtení, zápis a spouštění.

Přečíst

Oprávnění ke čtení souboru určuje, kdo může otevřít nebo zobrazit obsah souboru.

Oprávnění ke čtení pro adresář určuje, zda vidíte seznam souborů v adresáři, ale oprávnění ke čtení nestačí. Pro zobrazení seznamu souborů také potřebujete oprávnění k provedení adresáře.

Psát

Oprávnění k zápisu pro soubor určuje, zda můžete změnit obsah souboru.

Oprávnění k zápisu pro adresář řídí, zda můžete přidávat, odstraňovat nebo přejmenovávat soubory v tomto adresáři. Chcete-li uplatnit svá oprávnění k zápisu v adresáři, potřebujete také oprávnění ke spuštění pro adresář.

Poznámka :Pouze oprávnění k zápisu v přiloženém adresáři ovlivňuje, zda můžete soubor přejmenovat nebo odstranit. Některé operace, například rm , proveďte kontrolu a zabráníte smazání souboru, který nevlastníte. Nic nebrání jinému programu, který v sobě nemá zabudovanou podobnou kontrolu, aby smazal soubor, do kterého nemůžete zapisovat a který nevlastníte.

Provést

Oprávnění ke spuštění pro soubor vám umožňuje spustit tento soubor z příkazového řádku. Chcete-li spustit libovolný příkaz (chown , ls , rm , a tak dále), musíte mít oprávnění k provedení pro soubor představující tento příkaz. Pokud se pokusíte spustit příkaz a dostanete permission denied chyba, nemáte oprávnění ke spuštění.

Oprávnění ke spuštění pro adresář vám umožňuje provést operaci v tomto adresáři nebo změnit váš pracovní adresář (cd ) do tohoto adresáře.

I když máte oprávnění ke čtení pro adresář, nemůžete ve skutečnosti spustit ls v tomto adresáři zobrazíte seznam souborů, pokud nemáte také oprávnění ke spuštění. Jinak, když se pokusíte spustit ls , jste zablokováni dříve, než systém vůbec může zkontrolovat oprávnění ke čtení. Chcete-li ovlivnit cokoli v adresáři, musíte mít oprávnění ke spuštění pro adresář.

Kdo co může dělat

Nyní, když víte, jaká oprávnění jsou k dispozici, zvažte kategorie používané k řízení toho, kdo bude těmito oprávněními ovlivněn. Kategorie jsou uživatel, skupina a další.

Kategorie uživatele

uživatel kategorie oprávnění odkazuje na oprávnění, která se vztahují na vlastníka souboru. Je to jediná kategorie, která specificky cílí pouze na jednoho uživatele, protože soubor může vlastnit pouze jeden uživatel.

Kategorie skupiny

skupina kategorie odkazuje na uživatele, kteří jsou ve stejné skupině jako soubor. Pokud je soubor ve skupině devs a soubor má oprávnění k zápisu pro svou skupinu, to by znamenalo, že uživatelé v devs skupina má přístup pro zápis do souboru.

Druhá kategorie

ostatní kategorie je univerzální pro všechny, kteří nespadají do kategorií uživatelů nebo skupin. Pomocí této kategorie určíte, zda ostatní uživatelé mohou soubor číst, upravovat nebo spouštět jako příkaz.

Priorita kategorie

Je důležité si uvědomit, že kategorie oprávnění se používají v objednávce uživatel, skupina, ostatní. První kategorie oprávnění, kterou systém najde pro uživatele, je jediná, kterou použije. Pokud jste vlastníkem souboru, vaše oprávnění jsou všechna nastavená pro uživatele, takže systém se nebude obtěžovat kontrolou skupiny nebo jiných oprávnění pro soubor – již našel, co bude používat.

Tento koncept je důležitý, protože pokud nastavíte oprávnění pro jiné, toto oprávnění se nevztahuje na vlastníka souboru ani na nikoho ve skupině tohoto souboru. Tito uživatelé získají oprávnění nastavená v kategoriích uživatelů nebo skupin.

Pokud u souboru nenastavíte oprávnění ke čtení pro kategorii skupiny, ale nastavíte ho pro uživatele a další kategorie, uživatelé ve skupině souboru nebudou mít přístup ke čtení, ale všichni ostatní ano.

Oprávnění plus uživatelé

Kombinace vlastnictví, uživatelských kategorií a oprávnění poskytuje mnoho možností pro řízení přístupu k souborům a adresářům. Následující příklady ukazují některé možnosti:

  • Pokud vytvoříte soubor pouze pro čtení pro jinou kategorii, ale necháte do něj zapisovat kategorie uživatelů a skupin, můžete vytvořit skupinu editorů pro afile a zároveň umožnit ostatním uživatelům, aby jej mohli číst. Stačí přidat privilegované uživatele do stejné skupiny jako soubor.

  • Pokud nastavíte oprávnění ke čtení pro kategorii uživatelů a odeberete ji ze skupiny a dalších kategorií, zajistíte, že její obsah bude moci zobrazit pouze vlastník souboru.

  • Když pro soubor nastavíte oprávnění ke spuštění, umožníte jeho spuštění jako příkaz. Pokud máte příkaz, který chcete, aby jej mohli spouštět pouze konkrétní uživatelé, odeberte oprávnění ke spuštění souboru pro jinou kategorii.

Adresáře mají stejné zacházení. Mnoho adresářů systémových protokolů je nastaveno na čtení a spouštění pouze podle kategorie uživatele (často root ) a vyloučit tato oprávnění z jiných kategorií, abyste zajistili, že protokoly bude moci zobrazit pouze někdo s přístupem superuživatele, bez ohledu na to, jaká oprávnění jsou nastavena pro samotné soubory.

Proč existuje root

Uživatel root existuje, aby poskytoval přístup a řízení. Uživatel root může změnit vlastnictví a oprávnění libovolného souboru nebo adresáře v systému. Tento uživatel může také pracovat se soubory a adresáři, jako by měl nejpřípustnější dostupná oprávnění.

I když uživatel nemůže číst soubor, ale jiná kategorie ano, root jej může číst. Podobně, pokud uživatel může číst soubor, ale ostatní ne, root stále může číst soubor. Ale pokud žádná kategorie nemá oprávnění ke čtení (ne uživatel, skupina ani jiná), pak root nemůže číst ani soubor.

Toto chování je nejužitečnější pro soubory, které nechcete náhodně změnit. Pokud jsou u souboru odebrána oprávnění k zápisu ze všech kategorií, pak nemůže Evenroot změnit obsah souboru, aniž by tato oprávnění změnil.

Závěr

Se základními znalostmi o tom, jak fungují oprávnění k souborům v Linuxu, jste lépe připraveni zabezpečit soubory před náhodným nebo škodlivým poškozením. Můžete si také dávat pozor na chyby, které jsou způsobeny omezujícími oprávněními k souborům, jako je například nemožnost zápisu aplikace do svého protokolu (způsobené tím, že nemá oprávnění nowrite pro uživatele, který proces vlastní), nebo webový server, který nemůže sloužit. html soubor (způsobený tím, že nemá oprávnění ke čtení nebo adresář nemá oprávnění ke spuštění).


Linux
  1. Linux – všechno je soubor?

  2. Základní příklady příkazů „chmod“ v Linuxu

  3. Jak vymažu oprávnění s k adresáři v Linuxu?

  1. Jak přesunout soubor v Linuxu

  2. Linux – Spustit pouze oprávnění k souboru?

  3. Seznam členů skupiny v Linuxu

  1. Vysvětlení oprávnění souborů v systému Linux

  2. Linux Tail Command

  3. Linux Touch Command