GNU/Linux >> Znalost Linux >  >> Linux

Co znamená chmod 777

Pokoušíte se opravit problém s oprávněním na svém webovém serveru a na internetu jste našli informace, že je potřeba rekurzivně chmod 777 webový adresář. Než to uděláte, ujistěte se, že rozumíte tomu, co znamená chmod -R 777 ano a proč byste nikdy neměli nastavovat oprávnění na 777.

Tento článek vysvětluje základní model oprávnění pro Linux a co znamenají čísla odpovídající oprávněním.

Vysvětlení oprávnění souborů Linux #

V Linuxu je přístup k souborům řízen operačním systémem pomocí oprávnění k souborům, atributů a vlastnictví. Pochopení modelu oprávnění systému souborů Linux vám umožňuje omezit přístup k souborům a adresářům pouze na autorizované uživatele a procesy a zvýšit zabezpečení vašeho systému.

Každý soubor je vlastněn konkrétním uživatelem a skupinou a jsou mu přidělena přístupová práva pro tři různé třídy uživatelů:

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

Existují tři typy oprávnění k souborům, které se vztahují na každou třídu uživatelů a umožňují určit, kteří uživatelé mohou číst soubor, zapisovat do souboru nebo soubor spouštět. Stejné atributy oprávnění platí pro soubory i adresáře s jiným významem:

  • Oprávnění ke čtení.
    • Soubor je čitelný. Když je například nastaveno oprávnění ke čtení, uživatel může otevřít soubor v textovém editoru.
    • Je možné zobrazit obsah adresáře. Uživatel může vypsat soubory v adresáři pomocí ls příkaz.
  • Oprávnění k zápisu.
    • Soubor lze změnit nebo upravit.
    • Obsah adresáře lze změnit. Uživatel může vytvářet nové soubory, mazat existující soubory, přesouvat soubory, přejmenovávat soubory atd.
  • Povolení ke spuštění.
    • Soubor lze spustit.
    • Adresář lze zadat pomocí cd příkaz.

Oprávnění k souboru lze zobrazit pomocí ls příkaz. Zde je příklad:

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

První znak ukazuje typ souboru. Může to být běžný soubor (- ), adresář (d ), symbolický odkaz (l ), nebo jakýkoli jiný speciální typ souboru.

Následujících devět znaků představuje oprávnění 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.

Číslo oprávnění #

Oprávnění k souboru může být reprezentováno v číselném nebo symbolickém formátu. V tomto článku se zaměříme na číselný formát.

Číslo oprávnění se může skládat ze tří nebo čtyř číslic v rozsahu od 0 do 7.

Při použití 3místného čísla představuje první číslice oprávnění vlastníka souboru, druhá skupinu souboru a poslední všechny ostatní uživatele.

Oprávnění k zápisu, čtení a spouštění mají následující číselnou hodnotu:

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

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

Každá číslice čísla oprávnění může být součtem 4, 2, 1 a 0:

  • 0 (0+0+0) – Bez oprávnění.
  • 1 (0+0+1) – Spustit pouze oprávnění.
  • 2 (0+2+0) – Pouze oprávnění k zápisu.
  • 3 (0+2+1) – Oprávnění k zápisu a spouštění.
  • 4 (4+0+0) – Oprávnění pouze ke čtení.
  • 5 (4+0+1) – Oprávnění ke čtení a spouštění.
  • 6 (4+2+0) – Oprávnění ke čtení a zápisu.
  • 7 (4+2+1) – oprávnění ke čtení, zápisu a spouštění.

Pokud je například číslo oprávnění nastaveno na 750, znamená to, že vlastník souboru má oprávnění ke čtení, zápisu a spouštění, skupina souboru má oprávnění ke čtení a spouštění a ostatní uživatelé nemají oprávnění:

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

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 .

Chcete-li zobrazit oprávnění souboru v číselném (oktalovém) zápisu, použijte stat příkaz:

stat -c "%a" filename
644

Nikdy nepoužívejte chmod 777 #

Nastavení oprávnění 777 k souboru nebo adresáři znamená, že jej budou moci číst, zapisovat a spustit všichni uživatelé a může představovat obrovské bezpečnostní riziko.

Pokud například rekurzivně změníte oprávnění všech souborů a podadresářů pod /var/www adresář na 777 , každý uživatel v systému bude moci vytvářet, mazat nebo upravovat soubory v tomto adresáři.

Pokud máte problémy s oprávněním na svém webovém serveru, místo rekurzivního nastavení oprávnění na 777 , změňte vlastnictví souboru na uživatele spouštějícího aplikaci a nastavte oprávnění souboru na 644 a oprávnění adresáře na 755 .

Vlastnictví souboru lze změnit pomocí chown příkaz a oprávnění pomocí chmod příkaz.

Řekněme, že máte na svém serveru PHP aplikaci spuštěnou jako uživatel „linuxize“. Chcete-li nastavit správná oprávnění, spusťte:

chown -R linuxize: /var/wwwfind /var/www -type d -exec chmod 755 {} \;find /var/www -type f -exec chmod 644 {} \;

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í.

Závěr č.

Pokud spravujete systém Linux, je důležité vědět, jak fungují oprávnění pro Linux.

Nikdy byste neměli nastavovat 777 (rwxrwxrwx ) oprávnění k souborům a adresářům. 777 znamená, že s těmito soubory může kdokoli dělat cokoli.

Pokud máte nějaké dotazy, neváhejte zanechat komentář.


Linux
  1. Co toto varování znamená?

  2. Co znamená rc v souborech s tečkami

  3. Co znamená - v tomto linuxovém příkazu?

  1. Co se stane, když [[ $? -ne 0]]; znamená v .ksh

  2. Co to znamená #define X X?

  3. Co znamená zabít -3?

  1. Co znamená \b ve vzoru grep?

  2. Co znamená schopnost ep?

  3. Co znamená %st nahoře?