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