user törli saját könyvtárában a root által létrehozott fájlt

 ( blanc | 2004. október 28., csütörtök - 13:48 )

user törli saját könyvtárában a root által létrehozott fájlt

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Sziasztok

A címben szereplő problémám van:

test:/home/test# touch testfile
test:/home/test# echo probe > testfile
test:/home/test# ls -l
total 4
-rw-r--r-- 1 root root 6 Oct 28 13:27 testfile
test@test:~$ ls -l
total 4
-rw-r--r-- 1 root root 6 Oct 28 13:27 testfile
test@test:~$ rm testfile
rm: remove write-protected file `testfile'? y
test@test:~$ ls -l
total 0
test@test:~$

Tehát ennyit csináltam:
Létrehoztam egy fájlt root-ként a júzer könyvtárába, még írtam is bele, bár ez lényegtelen.
Ezután júzerként töröltem a saját könyvtáramban lévő, a root felhasználó- és csoporttulajdonát viselő fájlt.

Tud valaki megoldást arra vonatkozóan, hogy ezt ne tehessem meg?
Köszi a tippeket

[quote:2e84b6874b="blanc"]
Tehát ennyit csináltam:
Létrehoztam egy fájlt root-ként a júzer könyvtárába, még írtam is bele, bár ez lényegtelen.
Ezután júzerként töröltem a saját könyvtáramban lévő, a root felhasználó- és csoporttulajdonát viselő fájlt.
[/quote:2e84b6874b]

Ez termeszetes, a fajl letrehozas es torles az adott konyvtar write jogatol fugg.
A sticky bit egy konyvtarra elvileg pont azt eredmenyezi amit te szeretnel, csak a fajl tulajdonosa torolheti az adott flile-t a konyvtarbol.

[quote:eef9f49f1f="blanc"]Sziasztok

A címben szereplő problémám van:

test:/home/test# touch testfile
test:/home/test# echo probe > testfile
test:/home/test# ls -l
total 4
-rw-r--r-- 1 root root 6 Oct 28 13:27 testfile
test@test:~$ ls -l
total 4
-rw-r--r-- 1 root root 6 Oct 28 13:27 testfile
test@test:~$ rm testfile
rm: remove write-protected file `testfile'? y
test@test:~$ ls -l
total 0
test@test:~$

Tehát ennyit csináltam:
Létrehoztam egy fájlt root-ként a júzer könyvtárába, még írtam is bele, bár ez lényegtelen.
Ezután júzerként töröltem a saját könyvtáramban lévő, a root felhasználó- és csoporttulajdonát viselő fájlt.

Tud valaki megoldást arra vonatkozóan, hogy ezt ne tehessem meg?
Köszi a tippeket[/quote:eef9f49f1f]

Hali!

A file jogosultságoknak semmi köze a file törléséhez. Az könyvtártól függ. Értsd a user-nek w joga van a könyvtárhoz, tehát létrehozhat és törölhet file-t. A módosításhoz már nincs joga, mert az a file jogosultságtól függ. Ezt elkerülheted úgy, hogy nem adsz w jogot a felhasználó $HOME könyvtárára, de én ezt nem nevezném megoldásnak :)

Üdv.: Tomyellow

[quote:b535ebdb49="Blind4mood"]
Ez termeszetes, a fajl letrehozas es torles az adott konyvtar write jogatol fugg.
A sticky bit egy konyvtarra elvileg pont azt eredmenyezi amit te szeretnel, csak a fajl tulajdonosa torolheti az adott flile-t a konyvtarbol.[/quote:b535ebdb49]
Következőt tettem:
[code:1:b535ebdb49]
test@test:~$ su
Password:
test:/home/test# cd ..
test:/home# chmod 1755 test
test:/home# ls -l
total 4
drwxr-x-t 1 test test 4096 Oct 28 14:05 test
test:/home# cd test
test:/home/test# touch teszt
test:/home/test# ls -l
-rw-r--r-- 1 root root 0 Oct 28 14:32 teszt
test:/home/test# chmod 1644 teszt
test:/home/test# ls -l
-rw-r--r-T 1 root root 0 Oct 28 14:32 teszt
test:/home/test# exit
exit
test@test:~$ rm teszt
rm: remove write-protected file `teszt'? y
test@test:~$ ls -l
total 0
test@test:~$
[/code:1:b535ebdb49]

Tehát létre lett hozva a fájlra a sticky bit, a tároló könyvtárra is, mégis törölhettem a fájlt... :cry:

Hopsz, nem tudok olvasni. Szoval:

[quote:f923d361be]
If the mode bit S_ISVTX (sticky bit) is set on a directory, files
inside the directory may be renamed or removed only by the owner of
the file, the owner of the directory, or the superuser (even if the
modes of the directory would otherwise allow such an operation).[/quote:f923d361be]

[quote:51278cb04f="Blind4mood"]Ahogy irtam, a sticky bit a konyvtarra teendo, nem a fajlra.[/quote:51278cb04f]

Megtettem.
A fenti parancslistát az után írtam, hogy törölni tudtam a fájlt a könyvtárra rakott sticky bit után is. Kicsit előrementem, nehogy az legyen a gond, hogy a fájlra (is) kell.
Megcsináltam azt is, hogy a júzer ~-jában létrehoztam egy könyvtárat a root tulajdonjogaival (user/group), majd arra raktam stricky bitet, hogy ne a /home/test könyvtárral szórakázzak, hátha valahol esetleg az általam adott jogosultságokat felülíródnak (bár ez lehetetlen).

A lényeg ugyanaz, töröltem a fájlt. :cry:
Ugyanez megy közvetlenül a gép előtt ülve és ssh-n keresztül belépkedve.

[quote:c09b074293="Blind4mood"]Hopsz, nem tudok olvasni. Szoval:

[quote:c09b074293]
If the mode bit S_ISVTX (sticky bit) is set on a directory, files
inside the directory may be renamed or removed only by the owner of
the file, the owner of the directory, or the superuser (even if the
modes of the directory would otherwise allow such an operation).[/quote:c09b074293][/quote:c09b074293]

Nem, tökéletesen tudsz olvasni:
Ha a sticky bit be van állítva a könyvtárra, a könyvtárban lévő fájlok csak a fájl tulajdonosa, a könyvtár tulajdonosa vagy a superuser (root) által átnevezhetők vagy eltávolíthatók (törölhetők) (kivéve, ha a könyvtár módjai (jogosultságai) engedélyezik ezt a műveletet).

Tehát:
- a /home/test könyvtár teljes mértékben (user/group) a root felhasználónak lett átadva;
- a könyvtárra be lett állítva a sticky bit;
- a benne található, root tulajdonában lévő fájlra be lett állítva a sticky bit;
- a /home/test könyvtár alatt létrehozott 'proba' könyvtár a root teljes tulajdona, a benne lévő fájl szintén.

Eredmény:
A /home/test könyvtárban lévő fájl törölhető a "test" user által, s a /home/test/proba könyvtár alatti is. Minden és mindenki a root tulajdonában van, a "test" júzer pedig a mezei 'adduser test' paranccsal lett létrehozva, tehát a júzerhez defaultban tartozik egy test nevű csoport is, mely szintén nincs sehol beállítva (Minden root:root tulajdonossal rendelkezik).

Namost valaki abban segítsen ki, hogy ha be van állítva a sticky bit, minden érintett fájl és könyvtár a root tulajdonában van, akkor a mezei júzer hogy a búsban képes törölni a fájlt??? :?

A rendszer egyébként egy alaptelepített Debian 3.0r2 2.4-es kernellel telepítve (2.4.18), tehát nem egy agyonpatchelt rendszerről van szó, tökéletes alapbeállításokkal fut a gép.

Már elnézést, fájlokra mi értelme a sticky bitnek?
Legalábbis a KDE azt írja, hogy linuxnál nincs jelentősége, csak könyvtáraknál..

[quote:ba1f3c27ec="szgabor"]Már elnézést, fájlokra mi értelme a sticky bitnek?
Legalábbis a KDE azt írja, hogy linuxnál nincs jelentősége, csak könyvtáraknál..[/quote:ba1f3c27ec]

Vitázhatunk azon, mi értelme a fájlra rakni, de mivel a könyvtárra rakva sem az történik, amit mindannyian várunk, így azt kell mondjam, megoldáshoz nem vezetne :wink:

[quote:82942fc2b4="blanc"]test:/home/test# echo probe > testfile
test:/home/test# ls -l
total 4
-rw-r--r-- 1 root root 6 Oct 28 13:27 testfile
test@test:~$ ls -l
total 4
-rw-r--r-- 1 root root 6 Oct 28 13:27 testfile
[/quote:82942fc2b4]
Folytatas:
test:/home/test# [b:82942fc2b4]chattr +i testfile[/b:82942fc2b4]
test@test:~$ rm testfile
rm: remove write-protected file `testfile'? y
[b:82942fc2b4]rm: cannot remove `testfile': Operation not permitted[/b:82942fc2b4]
test@test:~$ ls -l
[b:82942fc2b4]total 4
-rw-r--r-- 1 root root 6 Oct 28 13:27 testfile[/b:82942fc2b4]
test@test:~$

[quote:7a29b4c6c3="GCS"]test:/home/test# [b:7a29b4c6c3]chattr +i testfile[/b:7a29b4c6c3]
[/quote:7a29b4c6c3]

Működik, köszi.

ha a /home/teszt a teszt user-e, sticky bit bekapcsolva, a /home/teszt-ben a root letrehoz egy filet, akkor azt termeszetesen torolheto a teszt user altal, mivel ove a konyvtar... olvasd el a sticky bit leirasat.

a sticky bit ertelmezese file-okon mar nincs ertelme, anno (amikor meg par mb volt a memoria merete) arra hasznaltak, hogy megjeloljek vele a filet, hogy hasznalat utan maradjon a memoriaban