Práva v Linuxu

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

Uživatelé

Uživatelé a skupiny jsou v Linuxu reprezentovány číselnými identifikátory UID (číslo uživatele) a GID (číslo skupiny). 

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

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

UID

Jde o čí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.

Skupiny

Každý uživatel je také č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 skupiny.

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

(část výpisu skupin)

GID

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

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

Číselné kódy 

První pozice je vyhrazena vlastníkovi, druhá skupině a třetí ostatním. 

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

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

Jednotlivé oprávnění je pak součtem.. 

Např. zapisuje a čte jen vlastník, ostatní čtou a zvenčí žádná práva nejsou:

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

Tedy 640

Příklady:

číslo vlastník skupina svět
777 rwx (4+2+1) rwx (4+2+1) rwx (4+2+1) Všichni mají právo číst, zapisovat i spouštět
770 rwx (4+2+1) rwx (4+2+1) —(0+0+0) Vlastník a ostatní uživatele mohou číst, zapisovat i spouštět. Svět ale nic
622 rw-(4+2+0) -w- (0+2+0) -w- (0+2+0) Vlastník může číst a zapisovat. Ostatní jen číst.

Jak je to na našich serverech

Důležití uživatelé

  • root: je nejvyšší administrátorský uživatel.
  • 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 účtu: jako vmail pro přístup k 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, že pokud vytvoříte složku pod uživatelem root, nebude mít uživatel 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?

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

Přes WinSCP doporučujeme změny provádět pouze pokud 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. (níže)

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

Pokud nechcete vypisovat adresáře 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.

chmod

slouží pro změnu práv nad soubory. Práva souborů může měnit pouze jeho vlastník nebo 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 v  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)

chown

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

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 skupiny chown :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 nic chmod 600 /www/hosting/vase-domena.cz/devel/

 

Poslední změna: 1 listopadu, 2021

Pomohla ti tato nápověda?

Související články nápovědy