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 aabbbcccddt
(‘ 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.