V systémech na bázi Unixu může být více uživatelů roztříděných do skupin. POSIX a běžné Unixové oprávnění filesystémů jsou uspořádány do tří skupin: vlastník (user), skupina (group) a ostatní uživatelé (others). Využití skupin dovoluje organizovanou správu oprávnění přidělovaných uživatelům, jako je například přístup na disky, k tiskárnám a nebo jiným periferiím. Tato metoda také dovoluje správci počítače, aby přiřadil některé administrativní úlohy běžným uživatelům, podobně jako skupina Administrátor ve Windows NT.

Identifikátor skupiny (GID, ) je číselná hodnota používaná pro reprezentaci určité skupiny. Rozsah hodnot pro GID je jiný pro každý systém. Nejmenší rozsah je od 0 do 32 767 s jediným omezením: skupina pro správce počítače musí mít hodnotu 0. Tato číselná hodnota odkazuje na skupiny v souborech /etc/passwd a /etc/group. Soubor stínových hesel a Network Information Service se také odkazují na číselné GID. GID je nezbytnou součástí Unixových filesystémů a procesů.

Rozsah a omezení Omezení číselného rozsahu pro skupiny vychází z velikosti volné paměti, do které se ukládají. Původně se používal znaménkový 16bitový integer (rozsah od −32 768 do 32 767). Protože záporné číslo není platným označením skupiny, bylo tedy používání znaménkového integeru zbytečné a tedy se začal používat integer neznaménkový (rozsah od 0 do 65 535).

Dnešní operační systémy už obvykle používají neznaménkový 32bitový integer (rozsah od 0 do 4 294 967 295), i když to není potřeba. Tento přechod z 16bitového neznaménkového integeru na 32bitový byl zaveden z důvodu, aby se do budoucna předešlo potřebám na zvětšení rozsahu, kdy už by mohla být implementace složitá.

Výchozí a dodatečné skupiny V Unixových systémech musí být každý uživatel členem nejméně jedné skupiny, která se identifikuje podle číselného GID z uživatelova záznamu v /etc/passwd. Tato skupina se nazývá primary group neboli výchozí a její číselné označení je primary group ID. V souboru /etc/group mohou být dodatečné záznamy, ve kterých je uživatel označen jako člen dalších skupin. Jejich číselné označení (zkráceně ID) se označují supplementary group IDs.

Reálné a efektivní GID Stejně jako UID je i GID rozdělen na reálné (GID) a efektivní (EGID) ID. V podstatě vše, co funguje pro GID, funguje i pro UID.

Každý proces obsahuje obě tyto ID (tedy efektivní i reálné). Efektivní ID používá kernel (jádro) a to z důvodu efektivity. Standardně se jeho hodnota nastavuje na hodnotu vlastníka procesu (je však možné ji kdykoli změnit) a proto je ve většině případech shodné s reálným. Reálné GID je skutečné označení skupiny (v případě UID uživatele), takže nemůže dojít k záměně identity (nelze jej změnit). Kernel na základě těchto ID usoudí, zdali má proces spustit či nikoli.

Jako jednoduchý příklad lze uvést změnu hesla. Kernel spustí proces pro úpravu souboru /etc/passwd s efektivním ID 0 (správce počítače – může tedy upravovat všechny záznamy), ale povolí úpravu záznamu pouze u uživatele se stejným ID, jako je reálné ID uživatele, který proces spustil.

Související články Identifikace uživatele Oprávnění v systému souborů Sticky bit Přístupová práva v Unixu

Reference

Kategorie:Unix