Jak nastavit přístupová práva v Linuxu

Podíváme se spolu, jak fungují práva na Linuxu, proč je dobré se vyznat v jejich číselném označení a naučíte se práva měnit. Ukážeme názorné příklady, na které často narazíte třeba ve VPS Centru.

Identifikace

Uživatelé a skupiny mají v Linuxu číselné identifikátory.

  • UID (číslo uživatele),
  • a GID (číslo skupiny). 

Uživatelé (UID)

Je číslo uživatele, které používá pro rozlišení uživatelů operační systém.

  • 0 je vyhrazeno pro správce systému (root).
  • 0-500 jsou systémové účty. Např.: MySQL server…
  • 500 a výše jsou určena pro běžné uživatele.

Každý uživatel v Linuxu má: 

  • username,
  • password,
  • domovský adresář v /home,
  • přiřazená práva. 

Každý uživatel je zároveň členem alespoň jedné skupiny. Členství v jednotlivých skupinách dává uživatelům specifická práva. Můžete si také vytvořit vlastní uživatele a vlastní skupiny.

Skupiny (GID)

Jde o číslo skupiny, které obsahují práva pro uživatele.

  • 0 –⁠⁠⁠⁠⁠ je vyhrazená pro root uživatele.
  • 1-99 jsou názvy skupin pro systémové aplikace.
  • 100+ jsou pro běžné uživatele.

Výpis všech skupin: cat /etc/group:

Část výpisu skupin

Číselné kódy

První pozice čísel je vyhrazená vlastníkovi, druhá skupině a třetí všem ostatním. 

Jejich práva lze vyjádřit čísly:

  • r (read) = 4
  • w (write) = 2
  • x (execute) = 1
  • – (zakázat přístup) = 0

Jednotlivé oprávnění se zapisuje jako součet čísel.

A práva se pak v praxi nastavují jednoduše, například:

  • Vlastník: (4+2+0) = 6
  • Skupina: (4+0+0) = 4
  • Ostatní: (0+0+0) = 0

Jen vlastník má podle součtu práva na zápis a čtení (write and read), ostatní pouze čtou a zvenčí žádná práva nejsou:

Tedy dohromady 640

Příklady:

součet číselvlastníkskupinaostatní 
777rwx (4+2+1)rwx (4+2+1)rwx (4+2+1)Všichni mají právo číst, zapisovat i spouštět.
770rwx (4+2+1)rwx (4+2+1)—(0+0+0)Vlastník a ostatní uživatele mohou číst, zapisovat i spouštět. Ostatní, ale nemohou nic.
622rw-(4+2+0)-w- (0+2+0)-w- (0+2+0)Vlastník může číst a zapisovat. Ostatní pouze číst.

Jaká práva jsou na našich serverech

Důležití uživatelé:

  • root: Je nejvyšší administrátorský uživatel (účet), má práva na všechny úpravy konfigurace a jinou správu serveru.
  • www-data: Je uživatel, který reprezentuje webserver a je mostem mezi uživatelem –⁠⁠⁠⁠⁠ serverem a prohlížečem. 
  • ostatní: Existuje ještě celá řada uživatelských účtů:
    • vmail sloužící pro přístup k e-mailům,
    • proftpd pro přístup k FTP napříč doménami,
    • mysql jako účet pro databázový server atp. Plný výpis uživatelů zobrazíte příkazem: cat /etc/passwd

Typickým příkladem je situace, kdy například vytvoříte složku pod uživatelem root, uživatel nebude mít www-data dostatečná práva a z toho důvodu nemůže přečíst soubory, které máte na serveru.

Jak práva měnit?

Pomocí WinSCP

Jednoduchá, zato často velmi pomalá cesta, je jít pomocí WinSCP. Stačí se do aplikace přihlásit jako root (SFTP) a pravým tlačítkem vyvolat možnosti:

Pokud zaškrtnete políčko, že chcete změnit práva rekurzivně, práva se změní všem souborům a složkám uvnitř této složky, a to je proces, který ve Windows trvá dlouhou dobu.

Přes WinSCP doporučujeme provádět změny pouze v případě, že to děláte pro pár souborů. Pokud potřebujete změnit práva většímu počtu souborů, tak doporučujeme využít Linuxové příkazy chown + chmod (popisujeme je níže).

chown

Program chown slouží ke změně vlastníka souborů a adresářů. Buďte ovšem opatrní, protože můžete server snadno rozbít.

Například: Příkazem chown -R nad lokací složky, kde jste to vůbec nechtěli (např. chown -R /root) by změnil práva každému souboru a složce a znemožnil by operačnímu systému pracovat. Většinou jediná zachrána je pak reinstalace celého systému.

Jaké příkazy s našim VPS Centrem často využijete:

změna vlastníka domény na www-data (nejčastější)
chown -R www-data:www-data /www/hosting/vase-domena.cz/
změna pouze skupinychown :www-data /www/hosting/vase-domena.cz/www/
změna pouze vlastníka
chown www-data /www/hosting/vase-domena.cz/www/
nastavení čtení a zápisu vlastníkovi, ostatním nicchmod 600 /www/hosting/vase-domena.cz/devel/

chmod

Slouží pro změnu práv nad soubory. Práva souborů může měnit pouze jeho vlastník nebo uživatel na úrovní root

Tady je nutné se přihlásit přímo na SSH. Buďto opět přes WinScp nebo klasicky přes Putty.

Jediným standardizovaným přepínačem příkazu chmod je -R, který slouží k rekurzivní změně práv. To znamená, že práva se změní pro všechny soubory a složky, které se ve složce nachází.

chmod 721 /www/hosting/domena/www/robots.txt

(vlastník může číst, zapisovat i spouštět, skupina má povolení pouze k zápisu a ostatní jen ke spuštění souboru robots.txt)

Pomocí Midnight Commanderu

Pokud adresáře nechcete vypisovat do příkazu, můžete použít také Midnight Commander, který je už na našich serverech předinstalovaný. Pouští se příkazem mc.

Pomohl Vám tento článek?

Podobné články