logo

Příkaz Chmod v Linuxu/Unixu s příklady

Linuxový příkaz chmod se používá ke změně přístupových oprávnění souborů a adresářů. Znamená změnit režim . Nemůže změnit oprávnění symbolických odkazů. Dokonce ignoruje symbolické odkazy, které narazí na rekurzivní procházení adresářů.

V Linux souborový systém, každý soubor je spojen s konkrétním vlastníkem a má oprávnění k přístupu pro různé uživatele. Uživatelské třídy mohou být:

  • majitel
  • člen skupiny
  • Ostatní (všichni ostatní)

Oprávnění souborů v Linuxu jsou následující tři typy:

  • číst (r)
  • napsat (w)
  • provést (x)

Stručná historie Chmod

Nejprve je příkaz chmod reprezentován v AT&T UNIX verze 1 se systémovým voláním chmod. Přístupové seznamy byly zahrnuty do několika souborových systémů v rámci těchto nejběžnějších režimů, aby se zvýšila flexibilita, protože systémy rostly co do typů a počtu uživatelů.

Verzi chmod uspořádanou v GNU coreutils specifikovali Jim Meyering a David MacKenzie. Tento příkaz je přítomen jako izolovaný balíček pro Microsoft Windows jako prvek nativní kolekce portů Win32 UnxUtils základních nástrojů podobných GNU Unix. Do operačního systému IBM i byl dodán také příkaz chmod.

Podívejme se, jak změnit oprávnění k souboru pomocí příkazu chmod.

Syntax:

ukazatele v c

Základní syntaxe příkazu chmod je následující:

 chmod 

Obecně implementované možnosti jsou:

    -R:Znamená rekurzivní, tj. přidávání objektů do podadresářů.-V:Zkratka znamená verbose, zobrazit objekty upravené (neupravené objekty se nezobrazí).

Cílový objekt je ovlivněn, pokud je zmíněn symbolický odkaz. Režimy souborů související přímo se samotnými symbolickými odkazy se obvykle nepoužívají.

Primární součást oprávnění chmod:

Například, rwxr-x---

Všechny skupiny tří znaků určují oprávnění pro všechny třídy:

    rwx:Tři znaky zcela vlevo určují oprávnění pro vlastníka souboru (tj. třídu User).r-x:Tři prostřední znaky určují oprávnění pro skupinu vlastnící soubor (tj. třídu Group).---:Tři znaky zcela vpravo určují oprávnění pro třídu Other. Uživatelé, kteří nejsou vlastníky souboru a členové skupiny, nemají k souboru přístup.

Možnosti:

strunný stavitel

Příkaz chmod podporuje následující možnosti příkazového řádku:

-c, --změní: Je to podobné jako možnost verbose, ale rozdíl je v tom, že je hlášena, pokud byla provedena změna.

-f, --tichý, --tichý: Používá se k potlačení chybových hlášení.

-v, --verbose: Používá se k zobrazení diagnostiky pro každý zpracovávaný soubor.

--no-preserve-root: Používá se pro nezacházení se symbolem zpětného lomítka ('/'), zejména (výchozí).

--preserve-root: Pokud použijete tuto volbu, nebude fungovat rekurzivně se zpětným lomítkem ('/').

--reference=RFILE: Používá se k určení režimu RFILE nebo k hodnotám MODE.

-R, --rekurzivní: Používá se k rekurzivní změně souborů a adresářů.

--Pomoc: Používá se k zobrazení nápovědy se stručným popisem použití a možností podpory.

--verze: Slouží k zobrazení informací o verzi.

Syntaxe oprávnění k souboru

Pokud jste novým uživatelem, můžete být zmateni různými typy písmen používaných k nastavení oprávnění k souboru. Takže, než budeme pokračovat dále s příkazem chmod, pojďme pochopit syntaxi oprávnění souboru.

Chcete-li nastavit oprávnění souboru nebo adresáře, musíme zadat následující věci:

  • Kdo: Kdo jsme. (uživatel)
  • Co: Jakou změnu provedeme (jako je přidání nebo odebrání oprávnění)?
  • Které: Které z oprávnění?

Příkaz oprávnění je reprezentován indikátory jako u+x, u-x. Kde „u“ znamená „uživatel“, „+“ znamená přidat, „-“ znamená odebrat, „x“ znamená spustitelný soubor (který).

vlc ke stažení videa z youtube

Uživatelská hodnota může být:

u: vlastník souboru

g: člen skupiny

o: ostatní

a: všechny

Typy oprávnění mohou být r, w a x.

Nastavení a aktualizace oprávnění

Chcete-li nastavit oprávnění souboru, proveďte příkaz oprávnění pomocí příkazu chmod. Například chceme nastavit oprávnění pro čtení a zápis pro všechny uživatele a skupiny souboru 'Demo.txt.' Příkazem chmod musíme předat oprávnění 'u=rw,go=rw Demo.txt'. Chcete-li zobrazit oprávnění k souboru, spusťte níže uvedený příkaz:

 ls -l Demo.txt 

Výše uvedený příkaz zobrazí aktuální oprávnění souboru k souboru 'Demo.txt'.

Chcete-li oprávnění změnit, proveďte následující příkaz:

 chmod u=rw,go=rw Demo.txt 

Zvažte následující výstup:

Příkaz chmod pro Linux

Z výše uvedeného výstupu se změnilo přístupové oprávnění 'Demo.txt'.

Nastavení oprávnění pro více souborů

Můžeme nastavit oprávnění pro více souborů najednou pomocí příkazu chmod. Chcete-li změnit oprávnění k více souborům, zadejte vzor souboru pomocí příkazu chmod. Například, pokud chceme nastavit oprávnění pro čtení a zápis pro všechny textové soubory, zadejte *. txt vzor s příkazem chmod.

Chcete-li zobrazit oprávnění všech textových souborů z aktuálního pracovního adresáře, proveďte níže uvedený příkaz:

 ls -l *.txt 

Zobrazí seznam všech textových souborů s jejich režimem oprávnění. Zvažte následující výstup:

Příkaz chmod pro Linux

Z výše uvedeného výstupu má mnoho souborů oprávnění pouze ke čtení pro ostatní uživatele.

Chcete-li nastavit oprávnění ke čtení a zápisu pro ostatní uživatele, proveďte níže uvedený příkaz:

 chmod o+w *.txt 

Nastaví oprávnění ke čtení a zápisu pro ostatní uživatele textových souborů. Zvažte následující výstup:

Příkaz chmod pro Linux

Číselná zkratka

K určení oprávnění můžeme místo písmen použít číselné hodnoty. K určení oprávnění se používá třímístná hodnota. Číslice zcela vlevo představuje vlastníka (u) a prostřední číslice představuje členy skupiny (g). Číslice zcela vpravo představuje ostatní (o).

Následující tabulka představuje číslice a jejich oprávnění:

Číslice Oprávnění
000 Bez povolení
001 Proveďte povolení
010 Povolení k zápisu
011 Zapisujte a spouštějte oprávnění
100 Oprávnění ke čtení
101 Číst a spouštět oprávnění
110 Oprávnění ke čtení a zápisu
111 Oprávnění ke čtení, zápisu a spouštění

Symbolické módy

Příkaz chmod také přijímá jemnější symbolický zápis, který umožňuje změnu konkrétních režimů. Symbolický režim se skládá ze tří prvků, které jsou sloučeny do jednoho textového řetězce:

 $ chmod [references] [operator] [modes] file... 

Program chmod používá operátor, který definuje, jak by měly být uspořádány režimy souborů. Níže uvedení operátoři jsou schváleni:

Operátor Popis
+ Přidává popsané k popsaným třídám.
- Odebere popsaný režim z popsaných tříd.
= Znamená to, že popsané režimy mají být vytvořeny stejnými režimy pro popsané třídy.

Režimy představují, která oprávnění budou odebrána nebo udělena z popsaných tříd. Existují hlavně tři běžné režimy, které souvisejí se společnými oprávněními:

název Režim Popis
číst r Přečte soubor nebo vypíše obsah adresáře.
napsat v Zapisuje do adresáře nebo souboru.
vykonat X Opakuje adresářový strom nebo spustí soubor.
speciální provedení X Není to oprávnění, ale místo toho lze použít místo x. Používá oprávnění ke spuštění pro adresáře navzdory jejich aktuálním oprávněním a používá oprávnění ke spuštění pro soubor, který má nastaven alespoň bit oprávnění ke spuštění. Je užitečné, pokud se používá s operátorem '+' a bez nastavení oprávnění ke spuštění, což by se stalo, kdybychom použili pouze chmod -R a+rx ., zatímco můžeme implementovat chmod -R a+rx . spíše s x.

Vícenásobné modifikace lze popsat izolováním více symbolických režimů spolu s čárkami. Příkaz chmod zkontroluje umaskovat pokud uživatel není určen.

Speciální režimy

Příkaz chmod může také změnit speciální režimy a zvláštní oprávnění adresáře nebo souboru. Symbolické režimy používají 's' k označení režimů setgid a setuid a 't' k označení režimu sticky. Režim se používá pouze pro správné třídy, bez ohledu na to, zda jsou uvedeny jiné třídy nebo ne.

bash if podmínka

Téměř všechny operační systémy číselně podporují specifikaci speciálního režimu, konkrétně v osmičkové soustavě, ale některé ne. Na tyto systémy lze použít pouze symbolické režimy.

Některé příklady příkazového řádku:

Příkaz Popis
chmod a+r publicComments.txt Přidá oprávnění ke čtení pro každou třídu (tj. skupinu, vlastníka a ostatní).
chmod a-x publicComments.txt Odebere oprávnění ke spuštění pro každou třídu.
chmod a+rx viewer.sh Přidá oprávnění ke spuštění a čtení pro každou třídu.
chmod u=rw, g=r, o=internalPlan.txt Nastaví oprávnění pro zápis a čtení pro uživatele, pro čtení pro skupinu a odmítne přístup pro ostatní.
chmod -R u+w, go-w docs Zahrne oprávnění k zápisu do adresáře docs a každého jeho obsahu pro vlastníka a odstraní oprávnění k zápisu pro ostatní a skupinu.
chmod and=rw groupAgreements.txt Nastaví oprávnění pro zápis a čtení pro skupinu a uživatele.
chmod 664 global.txt Nastaví oprávnění k zápisu a čtení pro skupinu a uživatele a udělí oprávnění ke čtení ostatním.
chmod 744 Show_myCV.sh Nastaví oprávnění ke spuštění, zápisu a čtení pro uživatele a udělí oprávnění ke čtení skupině a ostatním.