Identifikátor skupiny

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, anglicky group identifier) 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

Reference

V tomto článku byl použit překlad textu z článku Group identifier na anglické Wikipedii.