Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: daysleeper 15 Května 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 - chmod -w soubor - dobry, klasicky rm varuje nez smaze, ale pouze v interaktivnim modu
- chmod +t soubor - sticky bit - fakticky funguje jen na adresare, jinak ne
- chattr +i soubor - vyzaduje root (prip. CAP_LINUX_IMMUTABLE) prava pro nastaveni atributu immutable, pokud dam skriptu dane "capability" (sudo setcap cap_linux_immutable=eip skript.sh), chattr stejne hlasi "Operation not permitted while setting flags"
mate prosim nekdo jeste nejaky napad?
-
neni pro chattr potreba pripojit filesystem s parametrem, ktery na oddilu umozni pouziti rozsirenych atributu?
-
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
-
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.
-
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.
-
Tak změn vlastníka souboru na roota a nastav práva pro zápis jenom vlastníkovi.
sudo chown root:root soubor
sudo chmod 644 soubor
respektive bez roota, ostatní kromě tebe by měli přístup jen pro čtení:
chmod 644 soubor
-
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.
-
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?
-
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 :)
-
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)...
-
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.
-
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.
-
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