Doporučená, 2024

Redakce Choice

Pochopení Linux oprávnění a chmod Usage

V posledních měsících jsem absolvoval kurz o Linuxu a jeden aspekt Linuxu, který mě vždycky zmátl, bylo to, jak fungovala oprávnění. Například při nahrávání souboru na můj webový server jednou a získání chyby mi můj webhosting řekl, abych změnil oprávnění k souborům na 755.

Neměl jsem ponětí, co to znamená, i když změna oprávnění opravila problém. Uvědomil jsem si, že práva Linuxu nejsou tak složitá, že musíte systém pochopit. V tomto článku budu hovořit o právech Linuxu na vysoké úrovni a ukázat vám, jak pomocí příkazu chmod změnit oprávnění pro soubory a složky.

Oprávnění a úrovně systému Linux

V Linuxu existují v podstatě tři oprávnění, která se budete muset obvykle obávat: čtení, zápis a spouštění. Všechny tři z nich jsou docela samo-vysvětlující. Když jsou tato oprávnění aplikována na soubor, jsou nyní použita v úrovních.

V Linuxu existují tři úrovně oprávnění: vlastník, skupina a další. Vlastníkem je uživatel, který je vlastníkem souboru / složky, skupina zahrnuje další uživatele ve skupině souborů a další pouze reprezentuje všechny ostatní uživatele, kteří nejsou vlastníkem nebo ve skupině.

Čtení, zápis a spuštění jsou reprezentovány buď jako symbolické znaky nebo jako osmičková čísla. Pokud například v adresáři s některými soubory uděláte ls -l, zobrazí se symbolická reprezentace znaků oprávnění.

Oprávnění jsou zapsána následovně: první bit je buď pomlčka nebo písmeno d. Dash znamená, že je to soubor a d znamená adresář. První bit může být také l, pokud je název souboru odkazem. Dále jsou tři skupiny po třech bitech. První bit v každé skupině je pro čtení, druhý bit je pro zápis a třetí bit je pro spuštění. První tři bity jsou pro vlastníka, druhé tři bity jsou pro skupinu a třetí tři bity jsou pro ostatní. Zde je vizuální vysvětlení.

Pokud se místo písmene zobrazí pomlčka, znamená to, že vlastník, skupina nebo všichni ostatní uživatelé toto oprávnění nemají. Ve výše uvedeném příkladu má vlastník, skupina a všichni ostatní oprávnění ke čtení a spouštění.

Pokud se podíváte na výstup z příkazu ls -l, zjistíte, že můj praktický textový soubor má následující oprávnění:

 -rw-rw-rw- 

To znamená, že každý má pro soubor pouze oprávnění ke čtení / zápisu. Zde je další příklad:

 drwxr - r-- 

Při pohledu na první bit vidíme, že oprávnění jsou pro adresář. Vlastník má oprávnění ke čtení / zápisu / spuštění, ale skupina a další uživatelé mají pouze oprávnění ke čtení.

Reprezentace osmičkových čísel

Tak se v Linuxu zobrazují oprávnění pomocí symbolů. Druhý způsob, jak reprezentovat stejná oprávnění, je pomocí osmičkových čísel. Když později použijeme příkaz chmod, uvidíte, že oprávnění můžete změnit pomocí symbolů nebo osmičkových čísel.

Jak tedy Linux reprezentuje čtení, zápis a provádění pomocí osmičkových čísel? V podstatě přiděluje každému povolení pouze číslo, jak je uvedeno níže.

Oprávnění ke čtení je reprezentováno 4, napište 2 a proveďte 1. Vše, co musíte udělat, je přidat je do osmičkového povolení. Vezměme si například výše uvedený příklad, kde každý má všechna oprávnění:

 -rwxrwxrwx 

Majitel má rwx, takže přidáme 4 + 2 + 1, abychom získali hodnotu 7. Děláme totéž pro skupinu a totéž pro ostatní. Poslední osmičková hodnota je 777. Podívejme se na příklad, kde jsme udělili pouze oprávnění pro čtení / zápis:

 -rw-rw-rw- 

První osmičkové číslo bude 4 + 2, protože přidáváme čtení a zápis. Druhý bude stejný jako třetí osmičkové číslo. Zde máme konečnou osmičkovou hodnotu 666.

Takže teď to zkusíme jinak. Řekněme, že chceme vědět, jaká oprávnění 755 představuje? No, je to docela snadné přijít na to, jestli to rozdělíte podle jednotlivých čísel. První číslo je 7, které můžeme získat pouze přidáním 4 + 2 + 1, což znamená, že vlastník má oprávnění ke čtení / zápisu / provedení. Pět lze získat pouze přidáním 4 + 1, což znamená, že skupina a ostatní uživatelé mají oprávnění ke čtení a spouštění.

Doufejme, že to je dobré vysvětlení, jak reprezentovat oprávnění v Linuxu pomocí osmičkových čísel. Celkově je to celkem přímočaré.

Změnit oprávnění pomocí chmod

Nyní, když chápeme, jak číst oprávnění, mluvme o tom, jak je můžeme změnit. Nejjednodušší nástroj pro tento účel je příkaz chmod. Zde je návod, jak to funguje. Nejlepším způsobem, jak tento příkaz vysvětlit, je projít příkladem.

Začněme s oprávněními, o kterých jsme hovořili výše, a to:

 -rw-rw-rw- 

Kdybychom chtěli přidat oprávnění k provedení pro vlastníka, skupinu a další, mohli bychom to provést dvěma způsoby. Mohli bychom použít metodu symbolů nebo osmičkovou metodu. Pro metodu symbolů bychom udělali následující, jak je uvedeno níže:

Přesný příkaz je

 chmod a + x název_souboru 

Syntaxe je následující: písmeno nebo písmena reprezentující vlastníka ( u ), skupinu ( g ), jinou ( o ) nebo všechny ( a ) následované znaménkem + pro přidání oprávnění nebo - pro odebrání oprávnění a pak dopis pro povolení ( r pro čtení, w pro zápis a x pro provedení).

Ve výše uvedeném příkladu jsem přidal oprávnění ke spuštění pro všechny uživatele. Výsledek, jak můžete vidět na snímku nahoře, je x pro vlastníka, skupinu a další. Řekněme, že jsem chtěl odstranit oprávnění pro zápis a spuštění pouze pro skupinu a další uživatele.

Jak můžete vidět zde, k tomuto účelu jsem použil následující příkaz:

 chmod go-wx název_souboru 

Protože chci změnit oprávnění pro skupinu a další, používám písmeno g a písmeno o . Chci odstranit oprávnění, takže používám znak - . Nakonec chci odstranit oprávnění pro zápis a spuštění, takže používám w a x . Zde je praktický malý stůl pro používání symbolů:

Takže to je vše, co je k použití metody symbol. Promluvme si o osmičkové metodě, kterou považuji za trochu snazší. Octal je pěkný, protože můžete přidávat nebo odebírat oprávnění najednou.

Začneme-li s následujícími oprávněními k souboru, podívejme se, jak je můžeme změnit pomocí osmičkové metody:

 -rw-rw-rw- 

Nahoře můžete vidět následující příkaz:

 chmod 744 název_souboru 

To v podstatě říká, že vlastník dostane oprávnění ke čtení / zápisu / spuštění a skupina a další obdrží pouze oprávnění ke čtení. Jak můžete vidět, je snadné přidat nebo odebrat oprávnění v jednom jednoduchém příkazu. Pokračujme a říkám, že chci změnit oprávnění znovu.

Použil jsem následující příkaz, opět velmi jednoduchý:

 chmod 640 název_souboru 

Zde jsme udělili majiteli oprávnění pro čtení a zápis, pouze oprávnění ke čtení skupiny a žádná skupina nemá oprávnění. Použít nula označit žádná oprávnění. Docela jednoduché, co?

Závěrem lze říci, že se jedná o velmi jednoduchý přehled o právech Linuxu, který může být mnohem komplikovanější, ale pro začátečníky je to dobré místo pro start. Budu posílat další články o pokročilejších oprávněních v budoucnu. Máte-li jakékoli dotazy, neváhejte se vyjádřit. Užívat si!

Top