Mit jelent valójában a GID?

A Google-ba kerestem, és ez az, amit linux.about.com ezt mondta:

A folyamat azonosító száma. Az érvényes csoportszámokat a /etc/group és a /etc/passwd fájl GID mezőjében adjuk meg. Amikor egy folyamat elindul, a GID értéke a szülő folyamatának GID-jére van állítva.

  • De mit jelent ez?

A mappámhoz tartozó engedélyeim jelenleg a következő helyen vannak: 0755

Megértem, ha beállítom a tulajdonos UID-jét, akkor ez 4755

És ha beállítom a csoport GID-jét, akkor 2755

Ha Beállítottam a Sticky Bit-et másoknak: 1755

  • Még fontos ezeket az engedélyeket beállítani?

Válasz

A UNIX-szerű rendszer minden folyamatának, csakúgy, mint minden fájlnak, van tulajdonosa (a felhasználó, akár valós, akár egy rendszer “ál -user “, például daemon, bin, man stb.) és egy csoport tulajdonos. A felhasználó fájljainak csoporttulajdonosa tipikusan az adott felhasználó elsődleges csoportja, és hasonló módon az Ön által indított folyamatok általában a felhasználói azonosítója és az elsődleges csoportazonosítói tulajdonában vannak.

Néha , bár bizonyos parancsok futtatásához szükség van magasabb jogosultságokra, de nem kívánatos teljes rendszergazdai jogokat megadni. Például a passwd parancsnak hozzáférést kell kapnia a rendszer árnyékfájljához, hogy frissíthesse a jelszavát. Nyilvánvaló, hogy nem akar minden felhasználónak root jogosultságot adni, csak azért, hogy vissza tudják állítani a jelszavukat – ez kétségtelenül káoszhoz vezetne! Ehelyett egy másik módszert kell találni arra, hogy ideiglenesen magasabb jogosultságokat biztosítson a felhasználóknak bizonyos feladatok elvégzéséhez. Erre szolgálnak a SETUID és a SETGID bitek. Ez egy módja annak, hogy megmondjuk a kernelnek, hogy ideiglenesen emelje meg a felhasználó jogosultságait a megjelölt parancs végrehajtásának idejére. A SETUID bináris futtatásra kerül a futtatható fájl tulajdonosának privilégiumaival (általában root), a SETGID bináris pedig a futtatható fájl csoporttulajdonosának csoportjogosultságaival. fájl. A passwd parancs esetében, amely a root tulajdonosa és SETUID, lehetővé teszi a normál felhasználók számára, hogy közvetlenül befolyásolják a jelszó tartalmát. fájl ellenőrzött és kiszámítható módon, root jogosultságokkal végrehajtva. Számos egyéb SETUID parancs létezik UNIX-szerű rendszereken (chsh, screen, ping, su stb.), amelyek mindegyike emelt szintű jogosultságokat igényel a helyes működéshez. Van néhány olyan SETGID program is, ahol a kern ideiglenesen megváltoztatja a folyamat GID-jét, hogy hozzáférést biztosítson a naplófájlokhoz stb. egy ilyen segédprogram.

A sticky bit kissé más célt szolgál. Leggyakoribb célja annak biztosítása, hogy csak a fájlt létrehozó felhasználói fiók törölhesse. Gondoljon a /tmp könyvtárra. Nagyon liberális engedélyekkel rendelkezik, amelyek lehetővé teszik, hogy bárki fájlokat hozzon létre ott. Ez jó, és lehetővé teszi a felhasználók számára, hogy ideiglenes fájlokat hozzanak létre (screen, ssh stb., Az állapotinformációkat a /tmp). A felhasználó temp fájljainak védelme érdekében az /tmp fájlban be van állítva a ragacsos bit, így csak én törölhetem a fájljaimat, és csak te töröld a tiedet. Természetesen a root mindent megtehet, de remélnünk kell, hogy a sysadmin nem lesz elrontva!

Normál fájlok (vagyis nem futtatható fájlok) esetében nincs értelme a SETUID beállításának / SETGID bitek. A SETGID egyes rendszerek könyvtáraiban az alapértelmezett csoporttulajdonost vezérli az abban a könyvtárban létrehozott új fájlokra.

Megjegyzések

  • Ó, fantasztikus, köszönöm Ezért a Sticky Bit olyan, mint egy személyes (felhasználói) engedély? Ez a válasz jól megfogalmazott és érthető volt.
  • Köszönöm! A ragadós bit egy kis védelmet nyújt a liberális könyvtárban lévő fájlok számára. ‘ nem igazán jellemző egy adott felhasználóra, mivel az összes fájl azonos védettséggel rendelkezik, függetlenül attól, hogy ki a tulajdonos. Ez ‘ Ez lehetővé teszi bárkinek, hogy fájlokat hozzon létre, és biztosítsa, hogy csak a tulajdonos tudja megsemmisíteni őket.
  • +1, D_bye, kérem, ossza meg példáját a setgid bit set könyvtárhoz.Köszönöm
  • @Ankit Solaris alatt (és szinte biztosan másokban is – bár csak a * BSD-t és a Solaris-t használom), ha a setgid bit egy könyvtárban van beállítva, akkor az adott könyvtár alatt létrehozott új fájlok ugyanazok lesznek a csoporttulajdonos, mint maga a könyvtár, és nem örökli a létrehozási folyamat elsődleges csoportját (a futó felhasználó).

Válasz

Szerintem egy fájl” SGID “bitjére gondolsz, amely nem azonos a GID-jével.

Itt” tipikus fájl a számítógépemen (ls -l kimenete):

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

Ha megnézzük az első 10 szimbólumot,

(a) -: Ez csak egy sima régi fájl (szemben könyvtárba, symlinkbe, pipe-ba stb.)

(b) rw-: A tulajdonos olvashatja és írhatja ezt a fájlt, de nem hajthatja végre. A tulajdonos “bristol”, amint láthatja később a sorban.

(c) r–: Annak a csoportnak a tagjai, amelyhez a fájl tartozik (a példában a “felhasználók”), a tulajdonoson kívül olvashatják, de nem írhatják vagy futtathatják ezt a fájlt.

(d) —: A senki más “egyáltalán nem férhet hozzá ehhez a fájlhoz (természetesen a gyökér kivételével).

A GID mező adja meg, melyik csoporthoz tartozik ez a fájl – ebben az esetben a” felhasználók “.

Az a mező, amelyre valószínűleg a leírásod alapján gondoltál, az SGID bit, és itt jobb magyarázat van, mint amivel elő tudnám jönni:

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

A rövid verzió: ha egy futtatható fájlban az SGID bit van beállítva, akkor bárki, aki nincs a csoportban, de A fájl futtatása ideiglenesen megszerzi ennek a csoportnak a jogait, miközben a program fut.

Például, ha van egy csoportos “spool”, amely képes fájlokat olvasni és írni a nyomtatási spooler könyvtárban, akkor nem kell ” Szeretném, ha bárki elrontaná ezt a könyvtárat, de azt szeretné, hogy képesek legyenek fájlokat kinyomtatni, létrehozhat néhány nyomtatási programot vagy szkriptet, hogy csoportosítsa a “spool” beállítást, és beállítsa az SGID bitet, és amikor bárki elindítja ezt a programot, a program írjon a spooler könyvtárba anélkül, hogy a személy futna teljes hozzáférést kap.

Megjegyzések

  • Ez jó, köszönöm ezt. Megértem a jogosultságokat, (az abbbcccddd részt) – de ez neked 🙂
  • Éppen láttam, hogy a tmp mappában az engedélyeim drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmp. Mit jelent a abbbcccddt (‘ t ‘) betű? – Értem, hogy ” d = könyvtár “, ” rwx = olvasott, írjon, hajtson végre “; de a végén még soha nem láttam a ‘ t ‘ -t. Ez különleges engedély a tmp mappához?
  • A kicsi t ” futtatható (x) és ragacsos bitkészlet “. A fentiekben olvashatja el, hogy miért szokott ez lenni a / tmp fájlban.

Válasz

A GID, mint talált egy csoport azonosító számát. Ez egyszerűen meggyőző módja annak, hogy az operációs rendszer kifejezze a valamihez (folyamathoz, fájlhoz stb.) Társított (felhasználói) csoportot; A potenciálisan hosszú karakterlánc-azonosító helyett rögzített méretű számként fejezhető ki.

Négy oktális számjegyű fájlengedély-értékben (például 0755) a harmadik számjegy meghatározza a csoport engedélyeit fájlba. Ha kihagyja az első számjegyet, akkor ez a második számjegy adja meg a csoport engedélyeit. Vegye figyelembe, hogy a fájlokat és könyvtárakat ebben a tekintetben ugyanúgy kezelik, de az egyes engedélybitek pontos jelentése némileg nem -intulatív a könyvtárak esetében.

A két fogalom összefügg, de nagyon különböző célokat szolgál.

Ami a kérdést illeti: “még fontos meghatározni ezeket az engedélyeket?”; ezek mindig valami re vannak állítva, de mivel a legtöbb esetben a kezdő számjegy 0 (“semmi különös”), ez röviden elhagyható. Az, hogy valamilyen más értéket meg kell-e adnia, teljesen attól függ, hogy a kérdéses fájl vagy könyvtár használati mintája.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük