Igorka setgid bitek és umask

A folytatása a cikket a setuidot és úgy döntött, hogy írjon egy ilyen kicsit setgid. továbbá, hogy a példa adok itt volt a házi feladatot Linux tanfolyamok. Bár a munka véleményem csak foglalkozni vele, csak kettő-hat versenyző. Azt megbirkózott, és azt akarom mondani, hogy hogyan. A feladat a következő volt: hozzon létre egy megosztott mappát PUB két felhasználó, kollaborálását. Legyen a felhasználók számára, hogy hozzon létre a mappában található fájlokat, és szerkesztheti egymás fájljait. Más felhasználók nem férnek hozzá a mappát.

Ahhoz, hogy megoldja ezt a problémát meg kell egy kicsit setgid. Hadd emlékeztessem önöket, hogy ha ez a bit be van állítva a könyvtár, a létrehozott objektumok is meg fogja kapni a könyvtár tulajdonosa csoport, és nem a felhasználó. Magyarázat: igor felhasználó. Ez létrehoz egy könyvtárat (setgid bit nincs beállítva) fájlt. A tulajdonos a fájl igor. A csoport fő csoportja felhasználó igor (alapértelmezett igor). Ha van egy könyvtár, a tulajdonos gyökér. és a csoport tulajdoni hányad. és setgid bit be van állítva, a tulajdonos a létrehozott objektum igor. és a csoport a nem igor. és ossza (mint a telefonkönyvben). Továbbá a példa lesz még egyértelműbb.

Először hozzon létre a könyvtár maga PUB:

Ezután I létre PUB csoport. amely egy csoportja a tulajdonos a könyvtár:

$ Sudo addgroup pub

Egy felhasználó I (Igor), és a második létrehozott

$ Sudo adduser Olya

Most adjunk hozzá egy felhasználói csoportot a kocsmában:

$ Sudo addgroup Igor pub
Igor @ ubuntu:

$ Sudo addgroup Olya pub

Ellenőrizze, hogy a felhasználó hozzá a pub-csoport:

$ Kevesebb / etc / group | grep pub
pub: x: 1002: igor, Olya

Most change directory csoport tulajdonosi / PUB root a pub:

$ Sudo chown root: pub / pub /

Most határozza meg a szabályokat, az / PUB és setgid bit és ellenőrizze az eredményt:

$ Sudo chmod g + WS, o = / pub /
Igor @ ubuntu:

Setgid bit készlet, nincs jogosultsága az összes többi felhasználó számára.

Úgy tűnik, minden volt. Megnézem. Mentem Olya venni, és hozzon létre egy fájlt file.txt:

A konzol felhasználói Igor próbálja megváltoztatni a fájl:

$ Echo Hello!> /PUB/file.txt
bash: /PUB/file.txt: Permission denied

és kapok egy üzenetet, hogy a hozzáférés megtagadva. Azt nézzük meg az engedélyeket a fájlra:

$ Ls -l / pub /
ls: nem lehet megnyitni a könyvtárat a / pub /: Permission denied

Valószínűleg kell, hogy ki, és menjen újra a konzolt, mert még nem tudom, hogy hozzá a pub-csoport. Megyek, hogy ki a rendszer újra, ellenőrizze az engedély:

Látom, hogy egy csoport pub fájl csak olvasható jogosultságokat. Azt hiszem, az alapértelmezett szabályokat, sablonok, és a csapat umask. Az összes felhasználó számára, a sablon meghatározza a szabályokat a létrehozott objektumok, meg 0022 (ennek ellenőrzésére, akkor írja be az umask paraméterek nélkül), amely megadja a jogot, hogy az objektum fájl 644 (vagy -RW-r-r-). Meg kell változtatni ezt a sablont Igor és Olya felhasználók. A jogokat a létrehozott fájlok -rw-rw--. Erre az esetre a minta egyenlő 0017. Ubuntu ez a minta van állítva a .profile fájlban. amely található a home könyvtár minden felhasználó. Azt változtatni ezt a mintát a fájlban .profile Igor és Olya felhasználók. Meg kell találni a vonal a szó umask és módosítsa az értéket a jobb benne. Megyek be a rendszerbe, és ellenőrizze újra az eredmény:

$ Touch /PUB/file.txt
Igor @ ubuntu:

$ Echo Hello!> /PUB/file.txt
Igor @ ubuntu:

$ Cat /PUB/file.txt
Hello!
Igor @ ubuntu:

$ Touch /PUB/file2.txt
Olya @ ubuntu:

$ Echo Hello Igor!> File2.txt
Olya @ ubuntu:

Most minden rendben van. A katalógusban / PUB fájlokat hoz létre, amelyek szerkeszthetők mindkét felhasználó. A feladat meglehetősen gyakori, és most már tudom, hogy hogyan lehet megoldani, tudva, hogy van egy kicsit segid és umask.