GNU/Linux >> Znalost Linux >  >> Linux

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

V Linuxu řídí oprávnění k souborům, atributy a vlastnictví úroveň přístupu, kterou mají systémové procesy a uživatelé k souborům. To zajišťuje, že ke konkrétním souborům a adresářům mají přístup pouze oprávnění uživatelé a procesy.

Oprávnění souborů Linux #

Základní model oprávnění systému Linux funguje tak, že každý systémový soubor přiřadí vlastníkovi a skupině a přiřadí přístupová práva třem různým třídám uživatelů:

  • Vlastník souboru.
  • Členové skupiny.
  • Ostatní (všichni ostatní).

Vlastnictví souboru lze změnit pomocí chown a chgrp příkazy.

Pro každou třídu uživatelů platí tři typy oprávnění k souborům:

  • Oprávnění ke čtení.
  • Povolení k zápisu.
  • Povolení ke spuštění.

Tento koncept vám umožňuje řídit, kteří uživatelé mohou číst soubor, zapisovat do souboru nebo soubor spustit.

Chcete-li zobrazit oprávnění k souboru, použijte ls příkaz:

ls -l file_name
-rw-r--r-- 12 linuxize users 12.0K Apr  28 10:10 file_name
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

První znak označuje typ souboru. Může to být běžný soubor (- ), adresář (d ), symbolický odkaz (l ), nebo jiné speciální typy souborů. Následujících devět znaků představuje oprávnění k souboru, tři trojice po třech znacích. První trojice zobrazuje oprávnění vlastníka, druhá oprávnění skupiny a poslední trojice zobrazuje oprávnění všech ostatních.

Ve výše uvedeném příkladu (rw-r--r-- ) znamená, že vlastník souboru má oprávnění ke čtení a zápisu (rw- ), skupina a další mají oprávnění pouze ke čtení (r-- ).

Oprávnění k souboru mají různý význam v závislosti na typu souboru.

Každý ze tří trojic oprávnění může být sestaven z následujících znaků a má různé účinky v závislosti na tom, zda jsou nastaveny na soubor nebo adresář:

Vliv oprávnění na soubory

Povolení Postava Význam v souboru
Přečíst - Soubor není čitelný. Nemůžete zobrazit obsah souboru.
r Soubor je čitelný.
Napište - Soubor nelze změnit ani upravit.
w Soubor lze změnit nebo upravit.
Provést - Soubor nelze spustit.
x Soubor lze spustit.
s Pokud je nalezen v user triplet, nastaví setuid bit. Pokud se nachází ve group triplet, nastaví setgid bit. Znamená to také, že x je nastaven příznak.
Když je setuid nebo setgid příznaky jsou nastaveny u spustitelného souboru, soubor se spustí s právy vlastníka souboru a/nebo skupiny.
S Stejné jako s , ale x příznak není nastaven. Tento příznak se u souborů používá zřídka.
t Pokud se nachází v others triplet, nastaví sticky bit.
To také znamená, že x vlajka je nastavena. Tento příznak je u souborů k ničemu.
T Stejné jako t ale x příznak není nastaven. Tento příznak je u souborů k ničemu.

Vliv oprávnění na adresáře (složky)

Adresáře jsou speciální typy souborů, které mohou obsahovat další soubory a adresáře.

Povolení Postava Význam v adresáři
Přečíst - Obsah adresáře nelze zobrazit.
r Je možné zobrazit obsah adresáře.
(např. Soubory v adresáři můžete vypsat pomocí ls .)
Napište - Obsah adresáře nelze změnit.
w Obsah adresáře lze změnit.
(např. můžete vytvářet nové soubory, mazat soubory atd.)
Provést - Adresář nelze změnit na.
x V adresáři lze procházet pomocí cd .
s Pokud je nalezen v user triplet, nastaví setuid bit. Pokud se nachází ve group triplet nastavuje setgid bit. Znamená to také, že x vlajka je nastavena. Když setgid příznak nastaven na adresář, nové soubory vytvořené v něm zdědí ID skupiny adresářů (GID) namísto ID primární skupiny uživatele, který soubor vytvořil.
setuid nemá žádný vliv na adresáře.
S Stejné jako s , ale x příznak není nastaven. Tento příznak je v adresářích k ničemu.
t Pokud se nachází v others triplet, nastaví sticky bit.
To také znamená, že x vlajka je nastavena. Když je v adresáři nastaven fixní bit, může soubory v adresáři odstranit nebo přejmenovat pouze vlastník souboru, vlastník adresáře nebo administrátor.
T Stejné jako t , ale x příznak není nastaven. Tento příznak je v adresářích k ničemu.

Změna oprávnění k souboru #

Oprávnění k souboru lze změnit pomocí chmod příkaz. Oprávnění souboru může změnit pouze uživatel root, vlastník souboru nebo uživatel s právy sudo. Při používání chmod buďte zvlášť opatrní , zejména při rekurzivní změně oprávnění. Příkaz může přijmout jeden nebo více souborů a/nebo adresářů oddělených mezerou jako argumenty.

Oprávnění lze zadat pomocí symbolického režimu, číselného režimu nebo referenčního souboru.

Symbolická (textová) metoda #

Syntaxe chmod příkaz při použití symbolického režimu má následující formát:

chmod [OPTIONS] [ugoa…][-+=]perms…[,…] FILE...

První sada příznaků ([ugoa…] ), uživatelské příznaky, definuje třídy uživatelů, pro které se mění oprávnění k souboru.

  • u - Vlastník souboru.
  • g – Uživatelé, kteří jsou členy skupiny.
  • o – Všichni ostatní uživatelé.
  • a - Všichni uživatelé, identičtí jako ugo .

Když je příznak uživatele vynechán, výchozí je a .

Druhá sada příznaků ([-+=] ), příznaky operace, definují, zda mají být oprávnění odebrána, přidána nebo nastavena:

  • - – Odebere zadaná oprávnění.
  • + - Přidá specifikovaná oprávnění.
  • = - Změní aktuální oprávnění na zadaná oprávnění. Pokud za = nejsou udělena žádná oprávnění symbol, všechna oprávnění ze zadané třídy uživatele jsou odebrána.

Oprávnění (perms... ) jsou explicitně nastaveny pomocí nula nebo jednoho či více z následujících písmen:r , w , x , X , s a t . Použijte jedno písmeno z množiny u , g a o při kopírování oprávnění z jedné třídy uživatelů do jiné.

Při nastavování oprávnění pro více než jednu třídu uživatelů ([,…] ), použijte k oddělení symbolických režimů čárky (bez mezer).

Zde je několik příkladů použití chmod příkaz v symbolickém režimu:

  • Dejte členům skupiny oprávnění ke spuštění souboru, ale ne ke čtení a zápisu do něj:

    chmod g=x filename
  • Odeberte všem uživatelům oprávnění k zápisu:

    chmod a-w filename
  • Rekurzivně odeberte oprávnění ke spuštění pro ostatní uživatele:

    chmod -R o-x dirname
  • Odeberte oprávnění ke čtení, zápisu a spouštění všem uživatelům kromě vlastníka souboru:

    chmod og-rwx filename

    Totéž lze také provést pomocí následujícího formuláře:

    chmod og= filename
  • Udělte oprávnění ke čtení, zápisu a spouštění vlastníkovi souboru, oprávnění ke čtení skupině souboru a žádná oprávnění všem ostatním uživatelům:

    chmod u=rwx,g=r,o= filename

Numerická metoda #

Syntaxe chmod příkaz při použití symbolického režimu má následující formát:

chmod [OPTIONS] NUMBER FILE...

Při použití numerického režimu můžete nastavit oprávnění pro všechny tři třídy uživatelů (vlastník, skupina a všechny ostatní) současně.

Číslo oprávnění může být 3 nebo 4místné číslo. Když je použito 3místné číslo, první číslice představuje oprávnění vlastníka souboru, druhá představuje skupinu souboru a poslední číslice všech ostatních uživatelů.

Každé oprávnění k zápisu, čtení a spouštění má následující číselnou hodnotu:

  • r (přečteno) =4
  • w (zapsat) =2
  • x (provést) =1
  • žádná oprávnění =0

Číslo oprávnění konkrétní třídy uživatelů je reprezentováno součtem hodnot oprávnění pro danou skupinu.

Chcete-li zjistit oprávnění souboru v numerickém režimu, jednoduše spočítejte součty pro třídy všech uživatelů. Chcete-li například udělit oprávnění ke čtení, zápisu a spouštění vlastníkovi souboru, oprávnění ke čtení a spouštění skupině souboru a oprávnění pouze ke čtení všem ostatním uživatelům, postupujte takto:

  • Vlastník:rwx=4+2+1=7
  • Skupina:r-x=4+0+1=5
  • Ostatní:r-x=4+0+0=4

Pomocí výše uvedené metody dojdeme k číslu 754 , což představuje požadovaná oprávnění.

Chcete-li nastavit setuid , setgid a sticky bit příznaky, použijte čtyřmístné číslo.

Při použití 4místného čísla má první číslice následující význam:

  • setuid=4
  • setgid=2
  • sticky=1
  • žádné změny =0

Další tři číslice mají stejný význam jako při použití třímístného čísla.

Pokud je první číslice 0, lze ji vynechat a režim lze reprezentovat 3 číslicemi. Číselný režim 0755 je stejný jako 755 .

Pro výpočet numerického režimu můžete použít i jinou metodu (binární metodu), ale ta je trochu složitější. Pro většinu uživatelů stačí vědět, jak vypočítat číselný režim pomocí 4, 2 a 1.

Oprávnění souboru můžete zkontrolovat v číselném zápisu pomocí stat příkaz:

stat -c "%a" file_name

Zde je několik příkladů použití chmod příkaz v numerickém režimu:

  • Udělte vlastníkovi souboru oprávnění ke čtení a zápisu a oprávnění ke čtení pouze členům skupiny a všem ostatním uživatelům:

    chmod 644 dirname
  • Udělte vlastníkovi souboru oprávnění ke čtení, zápisu a spouštění, ke čtení a spouštění členům skupiny a žádná oprávnění ke všem ostatním uživatelům:

    chmod 750 dirname
  • Přidělte danému adresáři oprávnění ke čtení, zápisu a spouštění a lepivý bit:

    chmod 1777 dirname
  • Rekurzivně nastavená oprávnění ke čtení, zápisu a spouštění pro vlastníka souboru a žádná oprávnění pro všechny ostatní uživatele v daném adresáři:

    chmod -R 700 dirname

Závěr č.

V Linuxu je přístup k souborům omezen pomocí oprávnění k souboru, atributů a vlastnictví. Chcete-li změnit oprávnění souboru, použijte chmod příkaz.


Linux
  1. Oprávnění pro Linux:Úvod do chmod

  2. Zkontrolujte oprávnění souborů Linux pomocí ls

  3. Pochopení toho, jak Umask řídí počáteční oprávnění k souborům / adresářům v Linuxu

  1. Základy oprávnění k souborům Linux

  2. Linux – Rozumíte unixovým oprávněním a typům souborů?

  3. Pochopení konfiguračního souboru /etc/profile v Linuxu

  1. Linux – všechno je soubor?

  2. Oprávnění souborů v Linuxu s příkladem

  3. Oprávnění souborů v Linuxu – čtení/zápis/spouštění