Co ve skutečnosti znamená GID?

Mám to Googlem a to je linux.about.com said:

Identifikační číslo skupiny pro tento proces. Platná čísla skupin jsou uvedena v /etc/group a v poli GID souboru /etc/passwd. Když je proces spuštěn, jeho GID je nastaven na GID svého nadřazeného procesu.

  • Ale co to znamená?

Oprávnění, která pro svoji složku mám, jsou aktuálně 0755

Chápu, že když nastavím UID pro vlastníka, bude to 4755

A pokud nastavím GID skupiny, bude to 2755

Pokud Nastavil jsem Sticky Bit pro ostatní, bude to 1755

  • Je vůbec důležité nastavit tato oprávnění?

Odpověď

Každý proces v systému podobném systému UNIX, stejně jako každý soubor, má vlastníka (uživatele, buď skutečného, nebo systémového -user „, například daemon, bin, man atd.) a skupina majitel. Vlastníkem skupiny pro soubory uživatele je obvykle primární skupina tohoto uživatele. Podobným způsobem jsou všechny spuštěné procesy obvykle vlastnictvím vašeho ID uživatele a vašeho primárního ID skupiny.

Někdy Je však nutné mít ke spuštění určitých příkazů zvýšená oprávnění, ale není žádoucí udělit úplná práva správce. Například příkaz passwd potřebuje přístup k souboru stínového hesla systému, aby mohl aktualizovat vaše heslo. Je zřejmé, že nechcete udělit každému uživateli oprávnění root, jen aby si mohli resetovat heslo – to by nepochybně vedlo k chaosu! Místo toho musí existovat jiný způsob dočasného udělení zvýšených oprávnění uživatelům k provádění určitých úkolů. K tomu slouží bity SETUID a SETGID. Je to způsob, jak říct jádru, aby dočasně zvýšilo oprávnění uživatele po dobu provádění označeného příkazu. Binární soubor SETUID bude spuštěn s oprávněními vlastníka spustitelného souboru (obvykle root) a binární soubor SETGID bude spuštěn s oprávněními skupiny vlastníka skupiny spustitelného souboru soubor. V případě příkazu passwd, který patří do root a má SETUID, umožňuje běžným uživatelům přímo ovlivnit obsah hesla soubor kontrolovaným a předvídatelným způsobem prováděním s oprávněním root. V systémech podobných systému UNIX existuje mnoho dalších SETUID příkazů (chsh, screen, ping, su atd.), které ke správnému fungování vyžadují zvýšená oprávnění. Existuje také několik SETGID programů, kde jádro dočasně změní GID procesu, aby umožnil přístup k logovým souborům atd. sendmail je takový nástroj.

sticky bit slouží trochu jinému účelu. Jeho nejběžnějším použitím je zajistit, aby jej mohl smazat pouze uživatelský účet, který soubor vytvořil. Přemýšlejte o adresáři /tmp. Má velmi liberální oprávnění, která umožňují komukoli tam vytvářet soubory. To je dobré a umožňuje procesům uživatelů vytvářet dočasné soubory (screen, ssh atd., Uchovávat informace o stavu v /tmp). Kvůli ochraně dočasných souborů uživatele má soubor /tmp nastavený bit bitů, takže moje soubory můžu smazat pouze já a jen vy smažte svůj. Root samozřejmě může dělat cokoli, ale musíme doufat, že sysadmin není vyšinutý!

U normálních souborů (tj. U neproveditelných souborů) nemá smysl nastavovat SETUID / SETGID bity. SETGID v adresářích v některých systémech ovládá výchozího vlastníka skupiny pro nové soubory vytvořené v tomto adresáři.

Komentáře

  • Ah úžasné, děkuji za to. Takže Sticky Bit je jako osobní (uživatelské) povolení? Tato odpověď byla dobře formulovaná a srozumitelná.
  • Děkuji! Lepkavý bit poskytuje malou ochranu souborů v adresáři s liberálními oprávnění. ‚ není to pro konkrétního uživatele specifické, protože všem souborům je poskytována stejná úroveň ochrany bez ohledu na to, kdo je jejich vlastníkem. ‚ Je způsob, jak umožnit komukoli vytvářet soubory a zajistit, aby je zničil pouze vlastník.
  • +1, D_bye, mohl byste prosím sdílet příklad pro bit setgid nastavený v adresáři.Díky
  • @Ankit V systému Solaris (a téměř jistě i v jiných – používám pouze * BSD a Solaris), pokud je bit setgid nastaven v adresáři, všechny nové soubory vytvořené v tomto adresáři budou mít stejné vlastník skupiny jako samotný adresář a nezdědí primární skupinu (uživatele běžícího) procesu vytváření.

Odpovědět

Myslím, že máte na mysli bit„ SGID “souboru, který není stejný jako jeho GID.

Tady je typický soubor v mém počítači (výstup ls -l):

-rw-r----- 1 bristol users 16 2012-07-23 11:36 file.txt abbbcccddd <-- See explanation below. 

Pokud se podíváte na prvních 10 symbolů,

(a) -: Toto je jen obyčejný starý soubor (na rozdíl od do adresáře, symbolického odkazu, kanálu atd.))

(b) rw-: Vlastník může tento soubor číst a zapisovat, ale nespouštět jej. Vlastníkem je „bristol“, jak vidíte později v řádku.

(c) r–: Členové skupiny, do které tento soubor patří (v tomto příkladu „uživatelé“), kromě vlastníka, mohou tento soubor číst, nikoli však zapisovat nebo spouštět.

(d) —: A nyone else nemůže k tomuto souboru vůbec přistupovat (samozřejmě kromě root).

Pole GID je pole, které vám řekne, do které skupiny tento soubor patří – v tomto případě „uživatelé“.

Pole, které jste pravděpodobně mysleli, na základě vašeho popisu, je bit SGID, a zde je lepší vysvětlení, než jsem mohl přijít:

http://www.codecoffee.com/tipsforlinux/articles/028.html

Krátká verze je: pokud má spustitelný soubor nastaven bit SGID, pak kdokoli, kdo není ve skupině, ale může tento soubor dočasně spustit, získá práva této skupiny během provádění programu.

Například pokud máte skupinu „zařazování“, která umí číst a zapisovat soubory do adresáře zařazování tisku, nemusíte “ Nechci, aby si s tímto adresářem zahrával kdokoli, ale vy chcete, aby mohl tisknout soubory, můžete vytvořit nějaký tiskový program nebo skript se skupinovým „zařazením“ a nastavit bit SGID a když někdo tento program spustí, program může zapisovat do adresáře zařazovacího služby bez spuštěné osoby získává plný přístup.

Komentáře

  • To je dobře, děkuji vám za to. Rozumím části oprávnění (část abbbcccddd) – ale to vám 🙂
  • Právě jsem viděl svá oprávnění ve složce tmp drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmp. Co znamená abbbcccddt (písmeno ‚ t ‚)? – Rozumím tomu “ d = adresář „, “ rwx = read, napsat, spustit „; ale nikdy jsem neviděl ‚ t ‚ na konci. Je to zvláštní oprávnění pro složku tmp?
  • Malé t je “ spustitelný soubor (x) a pevně nastavený bit „. Vysvětlení, proč je to na / tmp obvyklé, naleznete výše.

Odpověď

GID je, jako jste našli, ID číslo skupiny. Pro OS je to prostě pohodlný způsob, jak vyjádřit (uživatelskou) skupinu spojenou s něčím (proces, soubor atd.); místo potenciálně dlouhého identifikátoru řetězce jej lze vyjádřit jako číslo pevné velikosti.

V hodnotě oprávnění souboru čtyř osmičkových číslic (například 0755) určuje třetí číslice oprávnění skupiny. Pokud vynecháte první číslici, je to druhá číslice, která určuje oprávnění skupiny. Upozorňujeme, že se soubory a adresáři se v tomto ohledu zachází stejně, ale přesný význam každého bitu oprávnění je poněkud jiný -intuitivní v případě adresářů.

Oba pojmy spolu souvisejí, ale slouží velmi odlišným účelům.

Pokud jde o vaši otázku „je vůbec důležité nastavit tato oprávnění?“; vždy jsou nastaveny na něco , ale protože ve většině případů je počáteční číslice 0 („nic zvláštního“), je z důvodu stručnosti spíše vynechána. Zda je třeba zadat jinou hodnotu, záleží zcela na vzor použití pro daný soubor nebo adresář.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *