GNU/Linux >> Znalost Linux >  >> Linux

9 Příklady příkazů Quick chmod v Linuxu

Příkaz Chmod v Linuxu se používá ke změně nebo přiřazení oprávnění k souborům a adresářům. V systémech Linux / Unix je dostupnost souborů a adresářů určena vlastnictvím souboru a oprávněními. V předchozím článku jsme se podívali na to, jak spravovat vlastnictví souborů a adresářů pomocí příkazu chown. V tomto tutoriálu se podíváme na příkaz chmod.

Příkaz chmod, zkratka pro change mode, se používá ke správě oprávnění k souborům a adresářům a určuje, kdo k nim může přistupovat. Pojďme se nyní ponořit a prozkoumat povahu oprávnění k souborům a adresářům a jak je lze upravit.

Oprávnění pro Linux

Abychom lépe porozuměli tomu, jak příkaz chmod funguje, je rozumné prostudovat si linuxový model oprávnění k souborům.

V Linuxu máme 3 typy oprávnění k souborům:oprávnění ke čtení (r), zápisu (w) a spouštění (x). Tato oprávnění určují, kteří uživatelé mohou číst, zapisovat nebo spouštět soubory. Tato oprávnění můžete přidělit pomocí textového nebo osmičkového (numerického) zápisu, jak si později probereme v tomto tutoriálu.

Soubory a adresáře mohou patřit buď vlastníkovi souboru (u), skupině (g) nebo jiným (o)

  • u   –  Vlastník souboru
  • g   –  Skupina
  • o   –  Ostatní

Oprávnění k souboru jsou uvedena pomocí příkazu ls -l. Parametr -l uvádí oprávnění k souboru. Oprávnění jsou uspořádána do tří sad:uživatel, skupina a ostatní

Abychom lépe porozuměli oprávněním k souborům, uvedeme obsah našeho adresáře takto:

$ ls -l

Počínaje krajní levou stranou první znak/symbol označuje typ souboru. Pomlčka (-) označuje, že soubor je běžný soubor. Symbol d označuje, že se jedná o adresář. Symbol l označuje, že se jedná o symbolický odkaz.

Zbývajících devět znaků je rozděleno do 3 trojic, z nichž každá nese tři symboly r(čtení), w(zápis) a x(exekuce). Jak bylo zmíněno dříve, první segment ukazuje na oprávnění vlastníka, druhý označuje oprávnění skupiny a poslední část určuje oprávnění, která mají ostatní uživatelé k souboru nebo adresáři.

Z výstupu vidíme, že máme 2 soubory (hello.txt &reports.zip) a jeden adresář.

Podívejme se na první soubor

-rw-rw-r-- 1 linuxtechi linuxtechi   35 Aug 17 15:42 hello.txt

U prvního souboru oprávnění -rw-rw-r– znamenají, že vlastník souboru má oprávnění ke čtení a zápisu, skupina také nese oprávnění ke čtení a zápisu, zatímco ostatní uživatelé mají oprávnění pouze ke čtení. Stejná oprávnění platí také pro komprimovaný soubor reports.zip.

Podívejme se na oprávnění adresáře:

drwxrwxr-x 2 linuxtechi linuxtechi 4096 Aug 17 15:43 sales

Vidíme, že vlastník adresáře a skupiny má všechna oprávnění (čtení, zápis a spouštění), zatímco ostatní uživatelé mají oprávnění pouze ke čtení a spouštění.

Symboly trojitého spojovníku – označují, že vlastníkovi souboru, skupině nebo jiným uživatelům nebyla udělena žádná oprávnění.

Použití příkazu chmod k nastavení oprávnění k souborům a adresářům

Když jsme se podívali na oprávnění souborů a jak je zobrazit, nezaměřme se na to, jak tato oprávnění upravit.

Příkaz chmod v Linuxu se používá ke změně oprávnění k souborům a adresářům pomocí textové (symbolické) nebo číselné (oktalové) notace. Vyžaduje následující syntaxi:

$ chmod [MOŽNOSTI] MODE název_souboru

Oprávnění k souboru nebo adresáři může měnit pouze uživatel root nebo běžný uživatel s právy sudo. V syntaxi příkazu můžete předat více než jeden soubor nebo adresář oddělený mezerami.

Pojďme se nyní ponořit a podívat se na různé příklady příkazu chmod.

Příklad 1) Přidělte oprávnění pomocí číselné notace

Při nastavování oprávnění pomocí číselného stylu/zápisu použijte níže uvedenou syntaxi:

$ sudo chmod [MOŽNOSTI] numeric_value filename

Číselná hodnota může obsahovat 3 nebo 4 čísla. Ve většině případů se však používají 3 čísla. Oprávnění ke čtení, zápisu a spouštění nabývají následujících hodnot:

  • oprávnění ke čtení => 4
  • oprávnění k zápisu => 2
  • oprávnění k provedení => 1

Celkový součet hodnot oprávnění, tj. čtení, zápis a spouštění v každém ze tří segmentů, odpovídá za kompletní oprávnění daného souboru nebo adresáře.

Co tím myslíme?

Předpokládejme, že vlastník má oprávnění ke čtení, zápisu a spouštění, skupina má oprávnění ke čtení a spouštění a ostatní uživatelé mají oprávnění pouze ke čtení, lze to rozdělit následovně:

  • u :   rwx  =7
  • g :   r-x  =5
  • o :   r–  =4

Proto se dostáváme k hodnotě 754 jako číselné hodnotě pro souborová oprávnění daného souboru.

Chcete-li přidělit oprávnění ke čtení, zápisu a spouštění vlastníkovi a oprávnění ke čtení pouze skupině a dalším uživatelům, spusťte příkaz:

$ chmod 744 devops.txt

Chcete-li přiřadit všechna oprávnění vlastníkovi souboru, číst a provádět oprávnění pro skupinu a žádná oprávnění pro ostatní uživatele, proveďte:

$ chmod 750 coders.txt

Chcete-li přiřadit všechna oprávnění vlastníkovi souboru, oprávnění ke čtení a zápisu pro skupinu a ostatní uživatelé spusťte příkaz:

$ chmod 755 sysadmin.txt

Příklad 2) Rekurzivní přidělování oprávnění adresářům

Při přidělování oprávnění adresářům použijte parametr -R k rekurzivnímu přiřazení oprávnění k jeho souborům a podsložkám. Například:

$ chmod 755 -R název_adresáře

$ chmod 755 -R /home/linuxtechi/data

Příklad 3) Přidělte oprávnění pomocí textové notace

Dalším způsobem přidělování oprávnění je použití textové notace. V této metodě příkaz chmod přebírá příznaky nebo symboly, které v syntaxi představují vlastníka, skupinu, ostatní nebo všechny uživatele (u, g a o).

Tato metoda není tak přímočará jako předchozí metoda a je třeba dbát opatrnosti, abyste se vyhnuli přiřazení nesprávných oprávnění.

Zde je návod, jak vypadá syntaxe

$ chmod [MOŽNOSTI] [ u g o a ]  [ – + =] [ r, w, x ] soubor

Pojďme to rozebrat.

První skupina parametrů [ u g o a]  určuje kategorii uživatelů, jejichž oprávnění se změní

  • u :uživatel
  • g :skupina
  • o :jiné
  • a :vše (to zahrnuje vše výše uvedené)

Pokud je tato sada vynechána, výchozí možností je možnost  a.

Druhá sada možností – možnosti operátora [ – + =] – určuje, zda budou oprávnění přidána nebo odebrána z kategorie uživatelů. Možnost odebrat

  • –    :Příznak odebere oprávnění k souboru konkrétnímu uživateli.
  • +   :Toto přidá/připojí oprávnění k určenému uživateli.
  • =   :To přiřadí konkrétním uživatelům odlišná oprávnění a odebere předchozí oprávnění segmentu uživatelů.

Podívejme se na několik příkladů:

Příklad 4) Přidělte souboru oprávnění ke čtení

$ chmod o=r název_souboru

Výše uvedený příkaz přiřadí ostatním uživatelům označeným symbolem „o“ oprávnění ke čtení pouze k souboru a odebere dřívější oprávnění přiřazená segmentu „ostatní“. Vezměte soubor1.txt, který má následující oprávnění

Chcete-li přiřadit „ostatní ( o )“ segmentu oprávnění pouze ke čtení, spusťte

$ sudo chmod o=r file1.txt

Z výstupu můžeme vidět, že segmentu „ostatní“ byla přidělena oprávnění ke čtení a zároveň ztratila oprávnění ke spuštění. To znamená, že operátor =přiděluje nová oprávnění a zároveň maže předchozí oprávnění.

Příklad 5) Přidělte oprávnění ke spouštění vlastníkovi souboru a skupiny

$ sudo chmod ug+x název_souboru

Výše uvedený příkaz přidá oprávnění ke spuštění vlastníkovi a skupině souboru. Pomocí našeho souboru se toto změní na:

$ sudo chmod ug+x file1.txt

Příklad 6) Přidělte různá oprávnění k souboru, skupině a dalším

$ sudo chmod u=rwx,g=rw,o=r název_souboru

Výše uvedený příkaz přiřadí všechna oprávnění vlastníkovi souboru, oprávnění ke čtení a zápisu skupině a pouze oprávnění ke čtení ostatním uživatelům.

POZNÁMKA: Pokud za operátorem =nejsou zadána žádná oprávnění, budou všechna oprávnění z uživatelského segmentu odebrána.

Příklad 7) Odeberte všechna oprávnění pro ostatní uživatele

$ sudo chmod o=název_souboru

Výše uvedený příkaz odebere všechna oprávnění ze segmentu uživatelů „ostatní“ pro zadaný soubor.

Příkaz má stejný účinek jako příkaz níže:

$ sudo chmod o-rwx název_souboru

Příklad 8) Přidělte oprávnění pomocí referenčního souboru

Dalším praktickým a pohodlným způsobem přidělování oprávnění k souboru je použití referenčního souboru. V této metodě využijete volbu –reference=ref_file k nastavení oprávnění souboru tak, aby byla stejná jako oprávnění jiného referenčního souboru. Použijte níže uvedenou syntaxi

$ sudo chmod –reference=ref_file název_souboru

Chcete-li například nastavit oprávnění souboru soubor2.txt na stejná jako oprávnění souboru soubor1.txt, spusťte příkaz:

$ sudo chmod --reference=file1.txt file2.txt

Referenční soubor je soubor1.txt, zatímco soubor2.txt je soubor, který zabere souborová oprávnění pro referenční soubor.

Příklad 9) Přidělte oprávnění ke spuštění pouze adresářům

Předpokládejme, že máme adresář, který má soubory a podadresáře, a chceme přidělit oprávnění ke spuštění pouze adresářům, aniž bychom se dotkli souborů. Toho lze dosáhnout pomocí následujícího příkazu chmod,

$ chmod a+X *

Pokud jste si pozorně všimli, pro oprávnění ke spuštění jsme použili velké X, výše uvedený příkaz nastaví oprávnění ke spuštění pro všechny adresáře  našeho aktuálního pracovního adresáře.

Závěr

To zatahuje oponu našeho tématu. Podívali jsme se na příkaz chmod a viděli jsme různé příklady, ve kterých lze příkaz použít ke změně oprávnění k souboru.


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

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

  3. V příkladech příkazů v Linuxu

  1. 8 Příklady příkazů rychlého data v Linuxu

  2. Příkaz mv v Linuxu:7 základních příkladů

  3. soubor Příklady příkazů v Linuxu

  1. 10 Quick Linux Tail Command s příklady

  2. 8 Příklady příkazů hlavy v Linuxu

  3. Příklady příkazů Linux tail