V systému Linux oprávnění k souborům, atributy a vlastnictví řídí úroveň přístupu, kterou systém zpracovává a uživatelé mají k souborům. Tím je zajištěno, že ke konkrétním souborům a adresářům mají přístup pouze oprávnění uživatelé a procesy.
Linux File Permissions #
Základní model oprávnění pro Linux funguje tak, že každý systémový soubor přidruží vlastníka a skupinu a přidělí přístupová práva pro oprávnění 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 umožňuje určit, kteří uživatelé mohou soubor číst, zapisovat do něj nebo jej spouštět.
Chcete-li zobrazit oprávnění souboru, použijte je
příkaz:
ls -l název_souboru
-rw-r - r-- 12 uživatelé Linuxu 12.0K 28. dubna 10:10 název_souboru | [-] [-] [-] - [------] [---] | | | | | | | | | | | | | + -----------> 7. Skupina | | | | | + -------------------> 6. Vlastník | | | | + --------------------------> 5. Alternativní metoda přístupu | | | + ----------------------------> 4. Ostatní oprávnění | | + -------------------------------> 3. Skupinová oprávnění | + ----------------------------------> 2. Oprávnění vlastníka + ------------------------------------> 1. Typ souboru
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í devět znaků představuje oprávnění souboru, každé tři triplety po třech znacích. První triplet ukazuje oprávnění vlastníka, druhý oprávnění skupiny a poslední triplet ukazuje 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í pouze oprávnění ke čtení (r--
).
Oprávnění k souborům mají jiný význam v závislosti na typu souboru.
Každá ze tří trojic oprávnění může být vytvořena z následujících znaků a má různé efekty v závislosti na tom, zda jsou nastaveny do souboru nebo do adresáře:
Vliv oprávnění na soubory
Povolení | Charakter | Význam v souboru |
---|---|---|
Číst | - | Soubor není čitelný. Nelze zobrazit obsah souboru. |
r | Soubor je čitelný. | |
Napsat | - | Soubor nelze změnit ani upravit. |
w | Soubor lze změnit nebo upravit. | |
Vykonat | - | Soubor nelze spustit. |
X | Soubor lze spustit. | |
s | Pokud je nalezen v uživatel triplet, nastaví setuid bit. Pokud je nalezen v skupina triplet, nastaví setgid bit. To také znamená X vlajka je nastavena.Když setuid nebo setgid příznaky jsou nastaveny na spustitelném souboru, soubor je spuštěn s oprávněními vlastníka souboru nebo skupiny. | |
S | Stejný jako s , ale X příznak není nastaven. Tento příznak se u souborů používá jen zřídka. | |
t | Pokud je nalezen v ostatní triplet, nastaví lepkavý bit.To také znamená X vlajka je nastavena. Tento příznak je u souborů nepoužitelný. | |
T | Stejný jako, t ale X příznak není nastaven. Tento příznak je u souborů nepoužitelný. |
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í | Charakter | Význam v adresáři |
---|---|---|
Číst | - | Nelze zobrazit obsah adresáře. |
r | Lze zobrazit obsah adresáře. (E.G., Soubory v adresáři můžete zobrazit pomocí je .) | |
Napsat | - | Obsah adresáře nelze změnit. |
w | Obsah adresáře lze změnit. (E.G., Můžete vytvářet nové soubory, mazat soubory… atd.) | |
Vykonat | - | Adresář nelze změnit na. |
X | V adresáři lze procházet pomocí CD . | |
s | Pokud je nalezen v uživatel triplet, nastaví setuid bit. Pokud je nalezen v skupina triplet nastavuje setgid bit. To také znamená X vlajka je nastavena. Když setgid příznak je nastaven na adresář, nové soubory v něm vytvořené 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 je nalezen v ostatní triplet, nastaví lepkavý bit.To také znamená X vlajka je nastavena. Když je lepivý bit nastaven v adresáři, smí nebo přejmenovávat soubory v adresáři pouze vlastník souboru, vlastník adresáře nebo administrativní uživatel. | |
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í souboru #
Oprávnění k souborům lze změnit pomocí chmod
příkaz. Oprávnění k souboru může změnit pouze uživatel root, vlastník souboru nebo uživatel s oprávněními sudo. Při používání buďte velmi opatrní chmod
, zvláště 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 určit pomocí symbolického režimu, číselného režimu nebo referenčního souboru.
Symbolická (textová) metoda #
Syntaxe souboru chmod
příkaz při použití symbolického režimu má následující formát:
chmod [MOŽNOSTI] [ugoa…] [- + =] povolení ... [,…] SOUBOR…
První sada příznaků ([ugoa…]
), příznaky uživatelů, 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.Ó
- Všichni ostatní uživatelé.A
- Všichni uživatelé, totožní sugo
.
Když je příznak uživatele vynechán, je výchozí A
.
Druhá sada příznaků ([- + =]
), příznaky operace, definuje, zda mají být oprávnění odebrána, přidána nebo nastavena:
-
- Odebere zadaná oprávnění.+
- Přidá zadaná oprávnění.=
- Změní aktuální oprávnění na zadaná oprávnění. Pokud po. Nejsou udělena žádná oprávnění=
symbol, všechna oprávnění ze zadané třídy uživatelů jsou odebrána.
Oprávnění (povolení ..
) jsou výslovně nastaveny pomocí nuly nebo jednoho nebo více z následujících písmen: r
, w
, X
, X
, s
, a t
. Použijte jediné písmeno ze sady u
, G
, a Ó
při kopírování oprávnění z jedné do jiné třídy uživatelů.
Při nastavování oprávnění pro více než jednu třídu uživatelů ([,…]
), oddělte symbolické režimy čárkami (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 název souboru
Odebrat oprávnění k zápisu pro všechny uživatele:
chmod a-w název souboru
Repulzivně odebrat oprávnění ke spuštění pro ostatní uživatele:
chmod -R dirname o-x
Odeberte oprávnění ke čtení, zápisu a spuštění všem uživatelům kromě vlastníka souboru:
chmod og-rwx název souboru
Stejné věci lze dosáhnout také pomocí následujícího formuláře:
chmod og = název souboru
Udělte oprávnění ke čtení, zápisu a spuštění vlastníkovi souboru, oprávnění ke čtení ke skupině souboru a žádná oprávnění všem ostatním uživatelům:
chmod u = rwx, g = r, o = název souboru
Numerická metoda #
Syntaxe souboru chmod
příkaz při použití symbolického režimu má následující formát:
chmod [MOŽNOSTI] ČÍSLO SOUBORU…
Při použití číselného režimu můžete nastavit oprávnění pro všechny tři uživatelské třídy (vlastník, skupina a všechny ostatní) současně.
Číslo oprávnění může být 3 nebo 4 číslice. Když se použije 3 číslice, představuje první číslice oprávnění vlastníka souboru, druhá skupinu souboru a poslední všechny ostatní uživatele.
Každé oprávnění k zápisu, čtení a spouštění má následující číselnou hodnotu:
r
(čtení) = 4w
(zápis) = 2X
(provést) = 1- žádná oprávnění = 0
Číslo oprávnění konkrétní třídy uživatelů je představováno součtem hodnot oprávnění pro tuto skupinu.
Chcete-li zjistit oprávnění souboru v numerickém režimu, jednoduše vypočítejte součty pro všechny třídy uživatelů. Chcete-li například udělit oprávnění ke čtení, zápisu a spuštění vlastníkovi souboru, oprávnění ke čtení a spuštění ke skupině souboru a oprávnění ke čtení pouze 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 přijdeme k číslu 754
, což představuje požadovaná oprávnění.
Chcete-li nastavit setuid
, setgid
, a lepkavý kousek
vlajky, použijte čtyřmístné číslo.
Při použití čtyřmístného čísla má první číslice následující význam:
- setuid = 4
- setgid = 2
- lepkavý = 1
- žádné změny = 0
Další tři číslice mají stejný význam jako při použití 3 číslic.
Pokud je první číslice 0, lze ji vynechat a režim lze znázornit 3 číslicemi. Numerický režim 0755
je stejné jako 755
.
Pro výpočet numerického režimu můžete také použít jinou metodu (binární metodu), ale je to trochu komplikovanější. Znalost výpočtu numerického režimu pomocí 4, 2 a 1 je pro většinu uživatelů dostačující.
Můžete zkontrolovat oprávnění souboru v číselné notaci pomocí stat
příkaz:
stat -c "% a" název_souboru
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
Poskytněte vlastníkovi souboru oprávnění ke čtení, zápisu a spouštění, oprávnění ke čtení a spouštění členům skupiny a žádná oprávnění všem ostatním uživatelům:
chmod 750 dirname
Udělte danému adresáři oprávnění ke čtení, zápisu a provádění a lepivý bit:
chmod 1777 dirname
Rekurzivně nastavte oprávnění pro čtení, zápis a spuštění vlastníkovi 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 systému Linux je přístup k souborům omezen pomocí oprávnění, atributů a vlastnictví souborů. Chcete-li změnit oprávnění souboru, použijte chmod
příkaz.
Máte-li jakékoli dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.