GNU/Linux >> Znalost Linux >  >> Linux

Změna oprávnění pro Linux

Tento článek popisuje, jak změnit oprávnění na cloudovém serveru Linux® pomocí chmod příkaz.

Co je příkaz chmod?

Jednoduše řečeno chmod znamená režim změny a používá se k nastavení oprávnění k souborům nebo adresářům v Linuxu. Uživatelé root používají chmod určit, kteří uživatelé, skupiny a další mohou přistupovat k souborům nebo adresářům.

Obvykle používáte chmod příkaz v následujících formátech:

$ chmod (options) (permissions) (file name)
$ chmod (permissions) (file name)

Použití voleb s chmod příkaz je volitelný. Nejčastěji se používá druhý příklad. Bez možnosti chmod upravuje oprávnění souboru nebo adresáře určeného v příkazu.

Oprávnění

V systému Linux můžete pomocí oprávnění odkazovat na vlastníka souboru nebo adresáře (uživatele), skupinu, která soubor nebo adresář vlastní (skupina), nebo kohokoli jiného, ​​kdo k souboru nebo adresáři přistupuje (ostatní).

Uveďte tato oprávnění pomocí následujícího zápisu:

  • alfanumerické znaky (r, w, x)
  • osmičková čísla (0-7)

Máte například soubor s názvem example.txt a chcete nastavit následující oprávnění:

  • Uživatel může soubor číst, zapisovat a spouštět.
  • Členové skupiny mohou soubor číst a spouštět, nikoli však zapisovat.
  • Všichni ostatní mohou soubor pouze číst.

Následující možnost příkazu nastavuje požadovaná oprávnění pro example.txt :

$ chmod u=rwx,g=rx,o=r example.txt

Tato možnost používá alfanumerické znaky k označení uživatelů, kteří mají k souboru přístup, a také oprávnění, která chcete těmto určeným uživatelům nastavit.

  • Písmeno „u“ =uživatel
  • Písmeno „g“ =skupina
  • Písmeno „o“ =jiné
  • Písmeno „r“ =číst
  • Písmeno „w“ =psát
  • Písmeno „x“ =vykonat

Následující příklad ukazuje, jak Linux zobrazuje oprávnění udělená v předchozím příkladu:

-rwxr-xr--

První tři písmena (rwx) jsou oprávnění uživatele. Druhé tři (r-x) představují oprávnění skupiny a poslední tři (r–) představují oprávnění ostatních.

Dále máme pro náš example.txt osmičkovou možnost cvičení:

$ chmod 754 example.txt

V tomto příkladu představují čísla 7, 5 a 4 oprávnění uživatele, skupiny a dalších. První číslo určuje oprávnění uživatele, druhé číslo určuje oprávnění skupiny a třetí číslo přiděluje oprávnění ostatním.

Tato čísla nejsou vybrána náhodně. Sčítání čísel 4, 2, 1 a 0 určuje oprávnění. Čísla mají následující přiřazení:

  • 4 znamená „číst“
  • 2 znamená „psát“
  • 1 znamená „provést“
  • 0 znamená „žádný“

Proto v našem předchozím příkladu je 7 určena z kombinace čtení (4), zápisu (2) a provádění (1):4 + 2 + 1 =7. 5 je převzato ze sečtení čtení (4), žádné (0) a spouštět (1):4 + 0 + 1 =5. A konečně, 4 je kombinací čtení (4), žádné (0) a žádné (0):4 + 0 + 0 =4 .

Možnosti

Obvykle nemusíte používat možnosti v chmod příkaz, ale v případě, že to uděláte, můžete použít následující možnosti s chmod :

  • -c , --changes :Poskytuje podrobný výstup pro provedené změny
  • -f , --silent , --quiet :Ztiší většinu chybových zpráv
  • -v , --verbose :Vytiskne podrobnou zprávu pro každou zpracovanou akci
  • --no-preserve-root :Ignoruje deferenci, která je normálně standardně dána adresáři / (kořenovému)
  • --preserve-root :Nepracuje rekurzivně v / (kořenovém) adresáři
  • --reference=RFILE :Nastaví oprávnění tak, aby odpovídala oprávněním RFILE, přičemž ignoruje jakýkoli konkrétní MODE
  • -R , --recursive :Změny provedené v souborech nebo adresářích jsou aplikovány rekurzivně
  • --help :Zobrazí zprávu nápovědy a poté se ukončí
  • --version :Zobrazí informace o verzi a poté se ukončí

Doplňky

Kromě již zmíněných oprávnění, chmod příkaz může nastavit tři další speciální oprávnění v Linuxu.

  • SUID (Nastavit ID uživatele)
  • SGID (Nastavit ID skupiny)
  • Sticky Bit

SUID

s v rwx uživatele sada oprávnění, nahrazující x , představuje toto oprávnění, jak ukazuje následující příklad:

$ chmod 4755 /usr/bin/passwd
$ ls -lh /usr/bin/passwd
-rwsr-xr-x.  1  root  root  28K  Mar  10  2020  /usr/bin/passwd

První tři písmena v rwsr-xr-x představují uživatelská oprávnění. Všimněte si, že místo x je tam s ve třech slotech oprávnění uživatele. Místo zobrazení x pro spuštění existuje s na místě provedení. Proč?

Poznámka: Toto oprávnění představuje 4 před obvyklou osmičkovou sadou oprávnění. Takže místo 755 , oprávnění je zapsáno jako 4755 .

Tuto volbu byste měli používat s opatrností, protože toto konkrétní oprávnění umožňuje uživateli spustit binární program, jako by byl vlastníkem tohoto programu, i když jím není. Nejznámějším příkladem je passwd příkaz.

V případě passwd , uživatel je schopen spustit program, i když binární program vlastní root. Nicméně, protože passwd je standardně nastaveno jako SUID, vždy se spustí jako uživatel root.

Pokud má běžný uživatel oprávnění SUID u jiných binárních programů, může spouštět příkazy jako root, aniž by měl root oprávnění. Umožňuje abnormální eskalaci oprávnění, která obvykle vyžadují sudo oprávnění k přístupu.

Oprávnění SUID mohou ovlivnit opatření zabudované do operačního systému Linux ve formě pouze binárních souborů. Nemá vliv na skripty.

SGID

s v rwx skupiny sada oprávnění, nahrazující x v t r-x segment, představuje oprávnění SGID, jak ukazuje následující příklad:

$ chmod 2755 /usr/bin/screen
$ ls -lh /usr/bin/screen
-rwxr-sr-x.  1  root  screen  465K  Feb  10  2020  /usr/bin/screen

Toto s je ve druhé skupině tří oprávnění, která, jak jsme zjistili, jsou oprávnění skupiny dříve, když byla napsána v alfanumerickém stylu. V osmičkovém vykreslení 2 před dalšími třemi osmičkovými čísly oprávnění označuje toto oprávnění. Místo 755 , napište to jako 2755 .

Stejně jako SUID, oprávnění SGID fungují pouze na binárních souborech. Nefungují na skriptech. Pokud jde o to, co SGID dělá, umožňuje nepřivilegovaným členům skupiny spustit binární soubor, jako by byli uživatelem root.

Obvykle můžete toto oprávnění použít u adresářů, kam členové skupiny potřebují mít přístup v rámci adresáře sdíleného skupinou. Všechny soubory vytvořené v tomto adresáři mají stejného vlastníka skupiny, bez ohledu na to, který člen skupiny soubor vytvořil.

Přilnavý bit

A t v rwx ostatních sada oprávnění, nahrazující x , představuje toto oprávnění, jak ukazuje následující příklad:

$ chmod 1777 /tmp
$ ls -lhd /tmp
drwxrwxrwt.  8  root  root  4.0K  Nov  6  14:42  /tmp

Všimněte si t v poslední sadě tří písmen. Osmičkový ekvivalent t je 1 před třemi oktály povolení. Místo 777 , napište to jako 1777 .

Co dělá tento lepivý kousek? Toto oprávnění obvykle používáte pro tmp a jeho funkcí je zabránit uživatelům ve smazání souborů vlastněných jinými uživateli. Obvykle, pokud má skupina přístup k zápisu do adresáře, může kterýkoli uživatel v této skupině odstranit jakýkoli soubor v tomto adresáři. Povolení sticky bit to zastaví. Smazat soubor může pouze jeho tvůrce.

Nejlepším postupem je nastavit oprávnění sticky bit pro jakýkoli adresář, jehož ostatní oprávnění je oktalová 7 (čtení, zápis, spouštění). V našem 754 například chcete použít oprávnění k lepivému bitu, pokud jsou osmičkové body 757 kde 7 je třetí osmička (představuje oprávnění ostatních).

Cheat sheet pro soubory a adresáře

Následuje stručný cheat vysvětlující každou část výstupu příkladu:

-rwxrw-r--  rack  space  123G  Feb  03  15:36  example.txt
  • - :- na začátku vám říká, že se jedná o soubor. d na začátku označuje adresář.
  • rwx :První tři písmena představují oprávnění vlastníka souboru a znamenají, že vlastník může číst, zapisovat a spouštět soubor example.txt.
  • rw- :Druhá tři písmena představují oprávnění skupiny a znamenají, že členové skupiny mohou soubor číst a zapisovat do něj, ale nemohou jej spustit.
  • r-- :Třetí tři písmena představují oprávnění ostatních a znamenají, že kdokoli, kdo není vlastníkem nebo ve skupině, která soubor vlastní, může soubor pouze číst. Nemohou do souboru zapisovat ani jej spustit.
  • rack :Vlastník souboru.
  • space :Vlastník skupiny.
  • 123G :Velikost souboru v gigabajtech. M by označovalo megabajty a K by označovalo kilobajty.
  • Feb 03 15:36 :Označuje datum a čas, kdy byl soubor naposledy upraven.
  • example.txt :Název souboru. Pokud toto uvedete jako „/example“, jedná se o název adresáře.

Linux
  1. Oprávnění pro Linux 101

  2. Příkaz chmod pro Linux

  3. chmod:změna oprávnění adresáře Operace není povolena

  1. Co je Umask v Linuxu

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

  3. Linux – změnit oprávnění složky?

  1. Průvodce pro začátečníky oprávněními pro Linux

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

  3. Jak používat příkaz chmod (Change Mode) v Linuxu