Skocz do zawartości
Zaloguj się, aby obserwować  
bryn1u

Zmiana zawartosci pliku bez mozliwosci zmiany nazwy pliku.

Polecane posty

Witam.

 

Zastanawiam sie czy jest mozliwosc zmiany zawartosci w pliku tekstowym bez mozliwosci zmiany nazwy tego pliku ? Krotko mowiac, user moze tylko ingerowac w tresc tego pliku do reszty dostep jest zablokowany. Chmody zwykle tutaj raczej odpadaja. Co pod linuxem udostepni mi taka mozliwosc ?

 

Pozdrawiam.

Edytowano przez bryn1u (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wpadłem na dwa sposoby.

Pierwszy to się pośredniczyć jakąś aplikacją. Można np. napisać prosty skrypt w bash'u, który executuje komendę w stylu "vi temp.txt", a następnie podmienia zawartość pliku docelowego z temp.txt + kasuje temp.txt. Komenda by wtedy wyglądała w stylu edytuj plik.txt

 

chattr -i $1
cp $1 temp.txt
vi temp.txt
rm -f $1
mv temp.txt $1
chattr +i $1

 

Inny sposób to wrzucenie usera do chroota/jaila i zabranie mu dostępu do wszystkich komend, które mogą robić rename'y, tak na szybko przypominam sobię rename, mv i pewno cp, ale mogą być jakieś jeszcze. No i oczywiście jeszcze rm + touch, żeby user nie mógł pliku usunąć i stworzyć nowego z inną nazwą.

 

Pewno zaraz ktoś mnie wyprowadzi z błędu i poda o wiele lepsze rozwiązanie w postaci jakiejś paczki/programu, ale tylko takie mi przychodzą do głowy ;).

Edytowano przez Archi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@Archi

 

A cos w stylu Mandatory Access Control rozwiazalo by problem ? Typu jakis ACL lub apparmor lub tomoto. Bo tyle udalo mi sie na szybko znalezc na necie ? We FreeBSD jest cos takiego jak chflags, stosuje sie flage append (o ile dobrze pamietam), ze mozna tylko i wylacznie dopisywac do tresci (tez do konca nie rozwiazuje mojego problemu), nie wolno usuwac. Ale to nie bylo tez dobre ze wzgledu na rotacje logow. Szukam czegos podobnego pod linuxa. Moze powiem dokladnie o co chodzi. Mam np katalog "secure" a w nim plik o nazwie "temp". User w swoim /home/user/secure moze wejsc do tego katalogu (np chmod xr), w tym katalogu moze edytowac plik "temp" jesli chodzi tylko i wylacznie o tresc, lecz nie moze zmienic jego nazwy. No i tutaj sie zastanawiam jak to ugryzc.

Edytowano przez bryn1u (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W linuxie też masz coś takiego jak append (chattr +a), ale tak jak sam stwierdzasz niezbyt Ci to pomoże w tym wypadku.

 

Wszystkie programy rozdające accessy mają swoje zalety i wady. Nie znam się aż tak dobrze na apparmorze czy tomoto, ale jeśli ma taką opcję to pewno będzie to działać. Pytanie tylko czy skonfigurowanie tego nie będzie trudniejsze niż napisanie kilku linijek w bash'u, które dałem Ci wyżej. Wystarczy zrobić prostego if'a, że tylko dla danego pliku można to wykonać i będzie śmigać :P.

Edytowano przez Archi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Archi, twój skrypt ma jedną małą wadę.

Co się stanie, jeśli użytkownik zabije owy proces wrappera wraz z potomnymi na etapie otwartego vim ;) ?

Odnośnie wycinania komend systemowych - to co, jeśli użytkownik wgra własną binarkę która wywoła polecenie unlink() ?

 

Trop przez edycję jakimś wrapperem jest dosyć dobry, tylko jego założenia wymagały by nieco modyfikacji.

Można go zrobić podobnie, jak to działa polecenie crontab. Czyli pliki z uprawnieniami user:root/grp:login i chmodem 640,

wrapper kopiuje plik do tmp/ i otwiera go do edycji, po zamknięciu i wykryciu zmian zastępować docelowy tymczasowym.

A żeby działało poprawnie, to wrapper z atrybutem suid.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

bez wrapperów

 

na katalog w którym jest ten plik

 

chattr +i katalog

 

i już nie zmieni nazwy pliku ale będzie go mógł edytować

 

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

[edit] Fakt, działa.

Jedyny problem w tym, że nie blokuje to konkretnego pliku, a cały katalog.

Ale chyba przy wspomnianych założeniach dało by się to zaakceptować.

Edytowano przez kafi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×