Jak fungují uživatelé a skupiny 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 (identifikátor uživatele),
  • a GID (identifikátor skupiny). 

Uživatelé

Každý uživatel má své vlastní číslo (UID), kterým se identifikuje v Linuxu.

  • 0 je vyhrazeno pro uživatele root,
  • 1-500 jsou systémové účty (např. MySQL server),
  • 501+ jsou určena pro běžné uživatele.

Každý uživatel je členem alespoň jedné skupiny. Uživatelé se mohou sdružovat v jednotlivých skupinách a každá skupina má svá vlastní specifická práva. Můžete si také vytvořit vlastní uživatele a vlastní skupiny.

Skupiny

Každá skupina má svůj identifikátor (číslo) a svá specifická práva platná pro každého uživatele skupiny.

  • 0 –⁠⁠⁠⁠⁠ je vyhrazená pro root uživatele.
  • 199 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

Druhy přístupových práv k souborům a adresářům

Přístupová práva v Linuxu se skládají ze tří čísel. První ze tří čísel je vyhrazené vlastníkovi souboru, druhé skupině, která soubor vlastní a třetí všem ostatním (ti, co nejsou vlastníci ani členové skupiny). 

Čísla samotná reprezentují jednotlivá práva:

V případě souborů:

  • čtení obsahu (r) = 4
  • zápis/změna obsahu (w) = 2
  • spuštění (x) = 1

V případě adresářů:

  • zobrazení souborů (r) = 4
  • přidávání a odebírání souborů (w) = 2
  • vstup do adresáře, zobrazení informací o souborech (x) = 1

A jejich součet pak skupinu oprávnění pro daného aktéra.

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

V praxi to vypadá následovně:

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

Tedy dohromady 640

Příklady:

součet číselvlastníkskupinaostatní 
755(4+2+1)(4+0+1)(4+0+1)Vlastník má všechna práva a ostatní mají právo na čtení a spuštění (obvyklé oprávnění pro složky na webu).
770(4+2+1)(4+2+1)(0+0+0)Vlastník a uživatelé skupiny mohou číst, zapisovat i spouštět. Ostatní, ale nemohou nic.
644(4+2+0)(4+0+0)(4+0+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 (superuživatel), má práva na všechno na serveru.
  • www-data: Je uživatel, kterého používá webserver. 

Existuje ještě celá řada uživatelských účtů:

  • vmail sloužící mailserveru,
  • proftpd pro FTP napříč doménami,
  • mysql jako účet pro databázový server MySQL.

Plný výpis uživatelů zobrazíte příkazem:

cat /etc/passwd

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 (vybrat protocol 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ř adresáře, což je proces, který 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ů, doporučujeme využít Linuxové nástroje chown + chgrp + chmod (popisujeme je níže).

Pomocí SSH

chown, chgrp

Program chown slouží ke změně vlastníka souborů a adresářů. Chgrp dělá totéž, jen pro skupiny.

Buďte ovšem opatrní, protože můžete server snadno rozbít.

Například: chown -R nad adresářem, kde jste to vůbec nechtěli (např. chown -R root /) by změnil práva každému souboru a adresáře a operační systém by nemohl pracovat. Většinou je pak jediná záchrana reinstalace celého systému.

chmod

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

Nejpoužívanější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 644 /www/hosting/domena.cz/www/robots.txt

(vlastník může číst a zapisovat, skupina a ostatní mají povolení pouze ke čtení souboru robots.txt)

Jaké příkazy na našich VPS často využijete:

změna vlastníka domény na www-data
chown -R www-data:www-data /www/hosting/vase-domena.cz/www/
změna pouze skupinychgrp 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 k souboru vlastníkovi, ostatním nicchmod 600 /www/hosting/vase-domena.cz/devel/topsecret.cnf
nastavení čtení a zápisu k adresáři vlastníkovi, ostatním nicchmod 700 /www/hosting/vase-domena.cz/devel/

Pomocí Midnight Commanderu

Pokud nechcete vypisovat příkazy, 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