set uid bit

Fórumok

Lenne egy kis vita, amiben kérném segítségeteket.

Lenne egy file aminek legyen rwsrwsrw root:root jogosultsága.
Egyes vélemények szerint ez a létező legnagyobb biztonsági rés a rendszerben, mivel bárki ezután bármit belemásolva azt tehet a rendszerrel, amit akar.
Másik vélemény, ha bárki belemásol bármit a file-ba egyből megszűnik az "s" bit és áttérünk rwxrwxrwx jogosultsággá, ami a rendszerre nézve nem veszélyes, ha ezt root nem futtatja le.
A vita a set uid bit-re van kiélezve, nem ha a root is lefuttatja gondolatra.

Kérdés: Lehet e úgy belemásolni nem root-ként, hogy az "s" bit megmaradjon?

Hozzászólások

Kipróbáltam, nálam a második valósult meg, azaz elmúlt a setuid bit. Ha hozzáfűztem 2 byte-ot - append -, akkor is elmúlt.

tr [:lower:] [:upper:] <<<locsemege
LOCSEMEGE

Kiegészítve locsemege írását.

"Lehet e úgy belemásolni nem root-ként, hogy az "s" bit megmaradjon?"
Igen, meg lehet oldani, hogy a setuid/setgid bit megmaradjon, tekintve hogy a file-nak adhatsz a kérdésben megadott jogot.

Példa:


# echo foo >bar
# chmod 6776 bar
# ls -l bar
-rwsrwsrw- 1 root root 4 Nov 18 11:52 bar
#

$ sed -i 's/foo/FOO/' bar
$ ls -l bar
-rwsrwsrw- 1 juzer juzer 4 Nov 18 11:52 bar
$

Persze a sed egy ideiglenes file-ba dolgozik, és a végén annak jogait módosítja fchmod()-dal és fchown()-nal (ha lenne rá joga), majd nevezi át rename()-mel.

Az utolsó sorból látszik, hogy nem volt teljes a kérdés megfogalmazása. Ugyanis a kérdés nem kötötte ki, hogy a file maradjon a root tulajdonában. Tehát setuid van, csak éppen már másra vonatkozik. (Ezt demonstrálni elég lett volna egy sima chmod, de így szemléletesebb.)