Fórum Ubuntu.cz

Ubuntu pro osobní počítače => Příkazový řádek a programování pro GNU/Linux => Téma založeno: daysleeper 15 Květen 2011, 18:43:33

Název: (bash) jak ochránit soubor před nechtěným smazáním?
Přispěvatel: daysleeper 15 Květen 2011, 18:43:33
ahoj,

mam adresar se soubory, a nektere bych chtel zkusit ochranit pred *nechtenym* smazanim beznym uzivatelem. jde to nejak bez toho, ze bych potreboval root prava?

zkousel jsem
mate prosim nekdo jeste nejaky napad?
Název: Re: (bash) jak ochránit soubor před nechtěným smazáním?
Přispěvatel: jmp 15 Květen 2011, 19:07:17
neni pro chattr potreba pripojit filesystem s parametrem, ktery na oddilu umozni pouziti rozsirenych atributu?
Název: Re: (bash) jak ochránit soubor před nechtěným smazáním?
Přispěvatel: daysleeper 15 Květen 2011, 19:22:02
neni pro chattr potreba pripojit filesystem s parametrem, ktery na oddilu umozni pouziti rozsirenych atributu?
v tom asi problem nebude, s root pravy mi funguje immutable flag dle ocekavani, jde mi o to, jestli je mozne soubor nejak ochranit (proti nechtenemu smazani typu "rm *" nebo v nautilu) bez root prav
Název: Re: (bash) jak ochránit soubor před nechtěným smazáním?
Přispěvatel: donny 15 Květen 2011, 19:35:53
Tak ten soubor umísti do adresáře, který bude vlastnit třeba root a ne-root nebude mít práva pro zápis do adresáře, ale jenom pro čtení. To pak nikdo než root nesmaže.
Název: Re: (bash) jak ochránit soubor před nechtěným smazáním?
Přispěvatel: daysleeper 15 Květen 2011, 19:55:38
Tak ten soubor umísti do adresáře, který bude vlastnit třeba root a ne-root nebude mít práva pro zápis do adresáře, ale jenom pro čtení. To pak nikdo než root nesmaže.
jak pisu v prvnim prispevku, potrebuji ochranit jen nektere soubory v adresari (vyberove), ne vsechny. takze zapis do adresare pro daneho uzivatele potrebuji.
Název: Re: (bash) jak ochránit soubor před nechtěným smazáním?
Přispěvatel: Martin Šácha 15 Květen 2011, 21:03:38
Tak změn vlastníka souboru na roota a nastav práva pro zápis jenom vlastníkovi.
Kód: [Vybrat]
sudo chown root:root soubor
sudo chmod 644 soubor

respektive bez roota, ostatní kromě tebe by měli přístup jen pro čtení:
Kód: [Vybrat]
chmod 644 soubor
Název: Re: (bash) jak ochránit soubor před nechtěným smazáním?
Přispěvatel: daysleeper 15 Květen 2011, 21:29:57
asi to budu muset lepe vysvetlit

jedna se o (muj) program, ktery stahuje maily ze serveru a uklada je jednotlive do souboru (po konverzi mbox → html zhruba receno, jakysi primitivni email client s jinym zpusobem ukladani mailu). z hlediska programatorskeho je pro me mnohem jednodussi mit vsechny ty soubory (jednotlive maily v html formatu) v jednom adresari, pricemz nektere je mozno v gui oznacit jako dulezite, a ty bych chtel aspon trochu (sam pred sebou) chranit.

nechci pritom ale program spoustet jako root. idealni by bylo neco jako "chattr +i soubor", ale bez roota.

diky.
Název: Re: (bash) jak ochránit soubor před nechtěným smazáním?
Přispěvatel: Martin Šácha 15 Květen 2011, 21:45:38
A kdyby jsi ty důležité maily ukládal do podadresáře a při čistění používal rm BEZ rekurzivního flagu?
Název: Re: (bash) jak ochránit soubor před nechtěným smazáním?
Přispěvatel: GdH 15 Květen 2011, 22:13:26
Takové nenáročné řešení by bylo například předávat cesty k chráněným souborům třeba skriptu v crontabu roota, který by jednou za čas chráněncům změnil příslušný atribut. Můžeš si rovnou pro větší bezpečnost dělat kopie na ohlodaném místě, které budeš stejným způsobem ošetřovat, zrovna tak může onen cron skript smazané soubory automaticky obnovovat ze zálohy na původní adrese. Nebo napíšeš démona, který to bude dělat okamžitě. Ale předpokládám, že takové věci tě už v zoufalství napadly :)
Název: Re: (bash) jak ochránit soubor před nechtěným smazáním?
Přispěvatel: daysleeper 15 Květen 2011, 22:34:32
to by slo, ale jako programator-amater mam uz tech zoufalosti v te aplikaci dost, nechci pridavat dalsi :)

treba existuje nejake cistsi reseni (bash nebo C)...
Název: Re: (bash) jak ochránit soubor před nechtěným smazáním?
Přispěvatel: Martin Šácha 15 Květen 2011, 22:43:04
Ještě mě napadlo, že bys mohl důležité maily ukládat (při označení přejmenovat) jako *.htm a nedůležité jako *.html (nebo obráceně).

A když budeš maily hromadně mazat, tak jenom *.htm respektive *.html.
Název: Re: (bash) jak ochránit soubor před nechtěným smazáním?
Přispěvatel: GdH 15 Květen 2011, 22:58:11
Pokud nemáš práva, tak tě asi nic nespasí, můžeš soubory chránit v rámci aplikace, ale dál už ne. Koneckonců nejjednodušší by v tomto případě bylo napsat jednoúčelový skript, který by jako parametr bral cesty k souborům a zajišťoval změnu atributu, případně vlastníka. Ten by měl výjimku v sudoers a pouštěl bys ho ze svého skriptu se sudo. Abys nedával výjimku standardním nástrojům.
Název: Re: (bash) jak ochránit soubor před nechtěným smazáním?
Přispěvatel: daysleeper 16 Květen 2011, 21:12:00
tak jsem nakonec pouzil zmenu nazvu souboru, sticky bit a write prava souboru, takze pri vypisech slozky je to vzdy pekne videt (napriklad nautilus tam ma ikonku zamku) a snad si to ted nechtene nevymazu
 
diky vsem