Vysvětlení oprávnění souborů v Linuxu: chmod, -rw-r–r– a přístupová práva

目次

1. Úvod

Co jsou „Oprávnění k přístupu“ v Linuxu?

V systémech Linux a podobných Unixu je správné spravování „oprávnění k přístupu“ (oprávnění) souborů a adresářů klíčové. Toto je nezbytný prvek z hlediska bezpečnosti i pro stabilní provoz systému. Mnoho lidí, když zobrazují seznam souborů v terminálu, pravděpodobně vidělo neznámé symboly jako -rw-r--r-- a ptalo se: „Co to znamená?“

Vztah mezi chmod a -rw-r–r–

Tyto symboly jsou symbolickým vyjádřením oprávnění k přístupu k souboru. Příkaz chmod se používá k nastavení a změně těchto oprávnění k přístupu. Jinými slovy, když použijete chmod k udělení specifických oprávnění k přístupu k souboru, výsledkem je zobrazení symbolů jako -rw-r--r--.

Účel a cílová skupina tohoto článku

V tomto článku vysvětlíme snadno srozumitelným způsobem, i pro začátečníky, co přesně znamená -rw-r--r-- a jak používat chmod k jeho nastavení a změně. Navíc se dotkneme praktického obsahu, jako jsou úvahy o bezpečnosti a skutečné příklady použití. Tento článek má za cíl poskytnout pevné porozumění praktickým znalostem aplikovatelným v reálných scénářích, zaměřeným na všechny od těch, kteří jsou noví v Linuxu, až po středně pokročilé uživatele, kteří jsou poněkud obeznámeni s operacemi v terminálu.

2. Co je chmod? [Basic Understanding]

Role příkazu chmod

chmod (vyslovováno „chom-mod“ nebo „change mode“) je zkratka pro „change mode“ a je to příkaz používaný v operačních systémech Linux a podobných Unixu k změně oprávnění k přístupu (oprávnění) souborů a adresářů. Pomocí tohoto příkazu můžete flexibilně ovládat „kdo může provádět jaké operace (čtení, zápis, spuštění)“. Správné nastavení oprávnění souborů a adresářů je klíčové nejen pro zajištění bezpečnosti, ale také pro prevenci problémů s sdílením a spouštěním souborů.

Základní syntaxe chmod

chmod [options] [permissions] filename

Například se používá takto:

chmod 644 sample.txt

Tento příkaz mění oprávnění sample.txt následovně:

-rw-r--r--  1 user group 1234 Apr 13 20:00 sample.txt
  • Vlastník (uživatel): Čtení a zápis povoleno (rw-)
  • Skupina: Pouze čtení (r–)
  • Ostatní: Pouze čtení (r–)

Dva typy specifikace: Číselná a symbolická

Existují dva způsoby, jak specifikovat oprávnění k přístupu pomocí chmod:

  • Číselná specifikace (číselný mód)
  • Příklad: chmod 755 script.sh
  • Tato metoda specifikuje oprávnění číselně pro každý typ uživatele.
  • Symbolická specifikace (symbolický mód)
  • Příklad: chmod u=rw,g=r,o=r file.txt
  • Tato metoda specifikuje oprávnění pomocí symbolů r (read), w (write) a x (execute) pro u (user), g (group) a o (others).

Obě metody mohou nakonec nastavit stejná oprávnění, ale číselná specifikace je rychlejší pro hromadné změny, zatímco symbolická specifikace umožňuje flexibilnější úpravy. Nejlepší je je používat podle situace.

Všimněte si rozdílu mezi chmod a chown

Příkaz chown je často zaměňován s chmod.

  • chmod : Změňuje oprávnění k přístupu (oprávnění)
  • chown : Změňuje „vlastníka“ a „skupinu“ souborů a adresářů

Protože jejich účely jsou odlišné, je důležité jasně pochopit roli každého příkazu.

3. Porozumění významu -rw-r–r– rozložením na části

Struktura symbolů oprávnění

Když spustíte příkaz ls -l v Linuxu, informace o souboru se zobrazí ve následujícím formátu:

-rw-r--r--  1 user group  1234 Apr 13  2025 sample.txt

Mezi těmito je nejlevější -rw-r--r-- reprezentuje oprávnění (práva přístupu) souboru. Porozumění tomu vám umožní správně pochopit, kdo může provádět jaké operace.

Podrobné vysvětlení každé části

① První znak: Typ souboru

SymbolMeaning
-Regular file
dDirectory
lSymbolic link
bBlock device
cCharacter device

V případě -rw-r--r-- počáteční - označuje, že jde o „běžný soubor.“ ② Znaky 2 až 10: Oprávnění k přístupu (3 znaky × 3 sady)

  • Vlastník (uživatel)rw- → Čtení (r) a zápis (w) jsou povoleny, spouštění (x) není.
  • Skupinar-- → Pouze čtení. Zápis a spouštění nejsou povoleny.
  • Ostatnír-- → Pouze čtení.

Tím je stav, že pouze vlastník může upravovat a ostatní uživatelé mohou pouze prohlížet.

Odpovídající číselná notace: Význam 644

V Linuxu lze stejná oprávnění také vyjádřit číselnou (osmičkovou) notací.
Číselná notace odpovídající -rw-r--r-- je 644.

User TypeSymbolic NotationNumericMeaning
Ownerrw-6Read + Write
Groupr--4Read-only
Othersr--4Read-only

Toto číslo je odvozeno z následujícího výpočtu:

  • Čtení (r) = 4
  • Zápis (w) = 2
  • Spouštění (x) = 1

Proto rw- = 4 + 2 = 6, r-- = 4, r-- = 4 → celkem 644.

Proč se tato oprávnění používají?

-rw-r--r-- (644) je oprávnění často používané pro veřejné soubory a statické soubory (HTML, CSS, atd.) na webových serverech.
Důvody jsou následující Pouze vlastník může upravovat → Zabraňuje neúmyslným úpravám
Čtení je povoleno ostatním uživatelům → Podporuje sdílení a publikaci souborů

Při správném použití umožňuje správu souborů, která vyvažuje bezpečnost a pohodlí.

4. Jak nastavit -rw-r–r– pomocí chmod [Practical Edition]

Změna oprávnění pomocí příkazu chmod

Přístupová oprávnění souborů a adresářů lze volně měnit pomocí příkazu chmod. Například pokud chcete nastavit stav na -rw-r--r--, stačí nastavit oprávnění na „644“.

Metoda nastavení pomocí číselné specifikace

Použijte formát chmod 644 název_souboru.

chmod 644 document.txt

Tento příkaz změní oprávnění souboru document.txt následovně:

-rw-r--r--  1 user group 1234 Apr 13 20:00 document.txt
  • Vlastník (uživatel): Povolené čtení a zápis (rw-)
  • Skupina: Pouze čtení (r–)
  • Ostatní: Pouze čtení (r–)

Metoda nastavení pomocí symbolické specifikace

Pokud chcete oprávnění manipulovat flexibilněji, je efektivní symbolická specifikace.

chmod u=rw,g=r,o=r document.txt

Tento příkaz se interpretuje následovně:

  • u=rw → Nastaví oprávnění čtení a zápisu pro vlastníka
  • g=r → Povolen pouze čtení pro skupinu
  • o=r → Povolen pouze čtení pro ostatní uživatele

Výsledek je přesně stejný jako číselná specifikace 644.

Důležité poznámky při aplikaci na adresáře

Na rozdíl od souborů adresáře vyžadují „spouštěcí oprávnění (x)“ pro přístup k jejich obsahu.
Například následující nastavení může omezit přístup:

chmod 644 my_folder

S tímto nastavením je povoleno pouze čtení, ale operace „otevřít“ obsah adresáře (která vyžaduje spouštěcí oprávnění) se stane nemožnou.

Příklad správného nastavení:

chmod 755 my_folder
  • Vlastník: Čtení, zápis, spouštění
  • Skupina a ostatní: Čtení, spouštění

Tímto umožníte ostatním uživatelům vypsat soubory v adresáři.

Rekurzivní změna oprávnění: volba -R

Pokud chcete najednou změnit více souborů a podadresářů, použijte volbu -R (rekurzivně).

chmod -R 644 my_folder

Tento operace aplikuje oprávnění 644 na všechny soubory v my_folder. Existují však důležité poznámky k této metodě.

5. Jak zkontrolovat oprávnění pomocí příkazu ls -l

Jak zkontrolovat oprávnění souborů?

Pro kontrolu přístupových oprávnění souborů a adresářů použijte standardní linuxový příkaz ls -l. Tento příkaz znamená „dlouhý výpis“ a zobrazuje podrobné informace jako oprávnění, vlastníka, velikost a datum poslední úpravy.

Základní použití

ls -l

Spuštěním tohoto příkazu se zobrazí výstup podobný následujícímu:

-rw-r--r--  1 naoya devs  2048 Apr 13 20:00 index.html

Každá položka má následující význam:

ItemMeaning
-rw-r--r--Permissions (access rights)
1Number of hard links (usually 1)
naoyaOwner (user)
devsGroup
2048File size (bytes)
Apr 13 20:00Last modification date and time
index.htmlFilename

Jak číst sloupec oprávnění

Zaměřme se na část -rw-r--r--, která je hlavním tématem této kapitoly. Lze ji rozdělit následovně:

  • První znak: Typ souboru
  • - : Běžný soubor
  • d : Adresář
  • l : Symbolický odkaz
  • Zbývajících 9 znaků: Oprávnění k přístupu (3 znaky × 3 sady)
  • Vlastník (uživatel): rw- → Čtení + Zápis
  • Skupina: r-- → Pouze pro čtení
  • Ostatní: r-- → Pouze pro čtení

Jinými slovy, z tohoto zobrazení můžete vyčíst, že „pouze vlastník může tento soubor upravovat a ostatní uživatelé ho mohou pouze číst.“

Kontrola pouze specifických souborů

Pokud chcete zkontrolovat oprávnění pouze specifického souboru, zadejte název souboru.

ls -l index.html

Tímto můžete zkontrolovat pouze cílový soubor. Je to užitečné pro kontrolu v adresářích s mnoha soubory.

Kontrola adresářů je také možná

Můžete také kontrolovat adresáře pomocí ls -l. Pokud však chcete vypsat obsah adresáře, použijte společně možnost -d.

ls -ld my_folder

Toto zobrazí pouze informace o oprávněních pro samotný my_folder (nezobrazí se seznam souborů uvnitř).

Bezpečné řízení při kontrole oprávnění

Po nastavení oprávnění pomocí chmod se doporučuje vždy zkontrolovat výsledek pomocí ls -l. Pokud zůstanou nesprávná nastavení na místě, mohou způsobit bezpečnostní incidenty nebo neočekávané chování. Také, pokud chcete zkontrolovat více souborů najednou, můžete to zkombinovat s potrubím takto:

ls -l | grep '.sh'

Toto vyfiltruje a zobrazí pouze soubory s příponou .sh (skript shellu).

6. Jak kontrolovat a měnit oprávnění pomocí nástrojů GUI (Pro začátečníky)

Možnosti pro ty, kteří se necítí pohodlně s příkazy

Provoz Linuxu je především provoz v příkazovém řádku pomocí terminálu, ale mnoho začátečníků považuje „obrazovku pouze s textem za obtížnou“ nebo se „bojí udělat neopatrnou chybu.“ Pro takové lidi můžete také kontrolovat a měnit oprávnění souborů pomocí metody GUI (Grafické uživatelské rozhraní).

Operace v Správci souborů Ubuntu (Nautilus)

Linuxové distribuce jako Ubuntu mají standardně správce souborů nazvaný „Nautilus.“ Jedná se o nástroj odpovídající „Průzkumník souborů“ ve Windows. Jak kontrolovat:

  1. Klikněte pravým tlačítkem na cílový soubor nebo adresář
  2. Vyberte „Vlastnosti“
  3. Otevřete kartu „Oprávnění“ (může být zobrazeno jako „Práva přístupu“ v závislosti na verzi)

Co zde můžete udělat:

  • Zkontrolovat a změnit vlastníka a skupinu (vyžadováno administrátorské oprávnění)
  • Přepnout oprávnění pro čtení, zápis a spuštění
  • Změny oprávnění k přístupu se aplikují okamžitě

V GUI se místo symbolů jako rw- a r-- zobrazují snadno srozumitelné výrazy jako „Pouze pro čtení“ a „Čtení a zápis“, takže i začátečníci mohou operovat s klidem.

WinSCP (SFTP klient pro uživatele Windows)

Při připojení k vzdálenému Linuxovému serveru z Windows můžete nastavit oprávnění v GUI pomocí SFTP klienta nazvaného WinSCP. Postup operace:

  1. Přihlaste se na server pomocí WinSCP
  2. Klikněte pravým tlačítkem na požadovaný soubor → „Vlastnosti“
  3. Změňte číselnou hodnotu (např. 644) nebo zaškrtávací políčka v „Právech přístupu (Oprávnění)“
  4. Klikněte na „OK“ pro aplikaci

Výhody:

  • Můžete kontrolovat jak číselným, tak symbolickým zobrazením
  • Rekurzivní změny oprávnění jsou také možné přes GUI (pro adresáře)

Poznámka:

  • Soubory vyžadující root oprávnění nemusí být měnitelné bez sudo oprávnění

<https://winscp.net/eng/index.php>

FileZilla (Cross-Platform SFTP klient)

Oprávnění můžete změnit stejným způsobem i pomocí SFTP klienta „FileZilla“, který lze použít i na Mac a Linux. Postup:

  1. Po připojení k serveru klikněte pravým tlačítkem na příslušný soubor
  2. Vyberte „Oprávnění souboru…“
  3. Nastavte zaškrtávacími políčky nebo číselnými hodnotami a klikněte na „OK“ pro aplikaci

Výhody a nevýhody operace GUI

Výhody:

  • Začátečníci mají menší pravděpodobnost udělat chybu
  • Změny lze vizuálně ověřit okamžitě
  • Snadno ovladatelné i pro ty, kteří nejsou obeznámeni s příkazy

Nevýhody:

  • V závislosti na nastavení serveru a prostředí nemusí být změny možné pomocí GUI nástrojů
  • Zobrazený stav a skutečný stav se mohou lišit, proto se doporučuje použít ls -l pro potvrzení v kombinaci

<https://filezilla-project.org/>

7. Poznámky a řešení problémů pro nastavení chmod

Nepracuje, i když si myslíte, že jste to nastavili správně? Co může být příčinou?

Po změně přístupových oprávnění pomocí příkazu chmod to může fungovat jinak, než očekáváte. Ve většině případů je to způsobeno chybami v nastavení oprávnění nebo nepochopením oprávnění.
Zde představíme běžné příklady řešení problémů v praxi a jejich řešení.

Piny a řešení chyby „Permission denied“

Příznak:

bash: ./script.sh: Permission denied

Příčina:

  • Soubor, který se snažíte spustit, nemá uděleno „spouštěcí oprávnění (x)“

Řešení:

chmod +x script.sh

Nebo při použití číselné specifikace:

chmod 755 script.sh

Je důležité si uvědomit, že „můžete číst a zapisovat, ale nemůžete spouštět.“

Nelze přistupovat ke složce bez spouštěcího oprávnění

Pokud nastavíte chmod 644 pro složku, možná nebudete moci číst její obsah.
Důvod:

  • „Spouštěcí oprávnění (x)“ pro složku je nezbytné k tomu, abyste se do ní „vstoupili“ a „viděli její obsah“.

Příklad:

chmod 644 my_folder
ls my_folder

→ V uvedeném případě možná nebudete moci zobrazit obsah a dojde k chybě.
Řešení:

chmod 755 my_folder

Nástrahy rekurzivních změn (-R)

Zatímco chmod -R je pohodlný, aplikuje stejná oprávnění jak na soubory, tak na složky, což může vést k neočekávaným problémům.
Běžný příklad selhání:

chmod -R 644 /var/www/html

→ Složka ztratí spouštěcí oprávnění a nemůžete přistupovat k jejímu obsahu.
Správné použití:

# Directories with execute permission
find /var/www/html -type d -exec chmod 755 {} ;

# Files with 644
find /var/www/html -type f -exec chmod 644 {} ;

Kombinační chyby s vlastníkem a skupinou

Kromě chmod je třeba věnovat pozornost také „vlastníkovi (uživateli)“ a „skupině“ souboru.
Například, pokud uživatel apache potřebuje číst soubor, ale vlastníkem je běžný uživatel a ostatní uživatelé nemají oprávnění ke čtení, zobrazení na webu selže.
Řešení:

  • Změna vlastníka: sudo chown www-data:www-data index.html
  • Udělení oprávnění skupině: chmod 640 index.html (pokud je skupina vhodná)

777 je nebezpečné! Riziko příliš volných oprávnění

Někteří lidé si mohou pomyslet: „Pokud to nefunguje, nastavím to na 777“, ale to je velmi nebezpečná praxe.
Důvod:

  • Každý může číst, zapisovat i spouštět
  • Zvyšuje se riziko manipulace třetími stranami a zneužití skriptů

Doporučená základní pravidla:

  • Soubory : 644 nebo 600
  • Složky : 755 nebo 700
  • Skripty a binárky : 755podle potřeby)

8. Příklady použití a běžné scénáře

Jak se nastavení oprávnění chmod používá v reálných situacích?

Příkaz chmod a doposud představené přístupové oprávnění -rw-r--r-- jsou často používány v reálném provozu serverů a vývojových prostředích.
Zde si na třech typických scénářích ukážeme, jak jsou nastavení oprávnění využívána.

1. Správa HTML souborů na webovém serveru

Scénář:
Když publikujete HTML soubory na webovém serveru, jako je Apache nebo Nginx, oprávnění nastavená pro tyto soubory jsou obvykle -rw-r--r-- (644).

chmod 644 index.html

Proč 644?

  • Vlastník (webový administrátor) potřebuje provádět změny → oprávnění k zápisu (w)
  • Webový server (www-data, apod.) potřebuje pouze číst → oprávnění ke čtení (r)
  • Není potřeba umožňovat ostatním uživatelům zápis

S tím nastavením můžete bezpečně publikovat webový obsah s minimálními nezbytnými oprávněními.

2. Udělení spouštěcího oprávnění skriptovým souborům

Scénář:
Vytvořili jste vlastní shell skript backup.sh, ale při pokusu o jeho spuštění dostanete „Permission denied.“

chmod 755 backup.sh

Význam tohoto nastavení:

  • Vlastník může číst, zapisovat a spouštět (rwx)
  • Skupina a ostatní mohou číst a spouštět (rx)

Tímto umožníte ostatním uživatelům spouštět skript zatímco pouze vlastník jej může upravovat.

3. Omezení čtení důvěrných souborů

Scénář:
Spravujete soubor secrets.txt, který obsahuje API klíče a hesla. Nechcete, aby jej mohl vidět někdo jiný než vy.

chmod 600 secrets.txt

Význam tohoto nastavení:

  • Pouze vlastník může číst a zapisovat (rw-)
  • Skupina a ostatní nemají žádný přístup (—)

Jedná se o velmi důležité nastavení z hlediska bezpečnosti a je nejlepší praxí vždy spravovat soukromé informace s oprávněním 600 nebo 400 (pouze pro čtení).

4. Bezpečné sdílení adresářů

Scénář:
Vytváříte sdílený adresář shared_folder, ke kterému bude mít přístup více vývojářů.

chmod 770 shared_folder

Význam tohoto nastavení:

  • Vlastník a skupina: Všechna oprávnění (rwx)
  • Ostatní: Žádný přístup (—)

Nastavením skupiny na vývojářský tým můžete umožnit bezpečnou a efektivní spolupráci. Cílové uživatele můžete flexibilně řídit změnou skupiny pomocí příkazu chgrp.

5. Problémy způsobené nesprávnými nastaveními a příklady, jak se jim vyhnout

Scénář:
Omylem jste spustili chmod -R 777 . a všechny soubory se staly zapisovatelnými.
Doporučená opatření k prevenci:

  • Vždy pomocí find specifikovat typ souboru při změně oprávnění
  • Před změnou zkontrolovat oprávnění pomocí ls -l
  • Nejprve vyzkoušet v testovacím prostředí

9. FAQ

Q1. Jaký je rozdíl mezi chmod 644 a -rw-r–r–?

A. Jedná se o různé způsoby, jak vyjádřit naprosto stejnou věc.

  • chmod 644 : Příkaz pro číselné nastavení oprávnění.
  • -rw-r--r-- : Symbolické zápisy, které vidíte po nastavení oprávnění, například pomocí ls -l.

Oba označují stav, kdy má vlastník oprávnění číst a zapisovat, a všichni ostatní mají pouze oprávnění ke čtení.

Q2. Co se stane, když soubor nemá oprávnění ke spuštění?

A. Při pokusu o přímé spuštění skriptů nebo binárek získáte chybu.
Například pro spuštění souborů .sh nebo .py je nutné oprávnění ke spuštění (x). Bez něj se zobrazí chyba jako tato:

bash: ./script.sh: Permission denied

Řešení:

chmod +x script.sh

Q3. Je v pořádku nastavit adresář na 644?

A. Obecně to není vhodné.
Adresáře vyžadují „oprávnění ke spuštění (x)“. Bez tohoto oprávnění nemůžete přistupovat k souborům uvnitř adresáře.
Správné nastavení:

chmod 755 directory_name

Q4. Jaká jsou nejčastější nastavení oprávnění?

A. Zde jsou některá běžná nastavení oprávnění a jejich využití:

  • 644 (-rw-r–r–) : Pro většinu statických souborů jako HTML, CSS, obrázky. Vlastník může číst a zapisovat, ostatní jen č.
  • 755 (-rwxr-xr-x) : Pro adresáře a spustitelné skripty. Vlastník může číst, zapisovat a spouštět; ostatní mohou číst a spouštět (ale ne zapisovat).
  • 600 (-rw——-) : Pro citlivé soubory, které by měl číst a zapisovat jen vlastník.
  • 700 (-rwx——) : Pro soukromé adresáře, ke kterým má přístup jen vlastník.

Q5. Jak mohu změnit vlastníka nebo skupinu souboru?

A. K změně vlastníka použijte příkaz chown a ke změně skupiny příkaz chgrp.
Příklad změny vlastníka:

sudo chown new_owner filename

Příklad změny skupiny:

sudo chgrp new_group filename

Pro tyto příkazy můžete potřebovat sudo, protože často vyžadují administrátorská oprávnění.

Q6. Jsou oprávnění souborů stejná na všech operačních systémech?

A. Ne, oprávnění souborů se mohou výrazně lišit mezi operačními systémy. Systémy Linux a podobné Unixu mají podrobný systém oprávnění založený na uživateli, skupině a ostatních, s oprávněními k čtení, zápisu a spuštění. Windows naopak používá jiný systém založený na Seznamech řízení přístupu (ACL), které jsou detailnější a mohou definovat oprávnění pro specifické uživatele a skupiny podrobnějším způsobem.

10. Závěr

Porozumění a správné nastavení oprávnění souborů v Linuxu je základní dovednost pro kohokoli, kdo spravuje server nebo pracuje se systémem. Zatímco notace -rw-r--r-- a příkaz chmod se na první pohled mohou zdát zastrašující, pochopení základních konceptů výrazně zlepší vaši schopnost udržovat bezpečný a dobře organizovaný systém. Porozuměním různým typům oprávnění, jak interpretovat symbolické a numerické notace a jak efektivně používat příkaz chmod, můžete zajistit, že vaše soubory a adresáře jsou chráněny a přístupné pouze zamýšleným uživatelům. Pamatujte, abyste vždy dvojitě kontrolovali svá nastavení oprávnění příkazem ls -l a buďte opatrní při používání rekurzivních možností. S praxí se správa oprávnění souborů stane přirozenou a nezbytnou součástí vašeho pracovního postupu.