Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.

Autor Téma: (bash) jak ochránit soubor před nechtěným smazáním?  (Přečteno 2989 krát)

daysleeper

  • Závislák
  • ****
  • Příspěvků: 1206
  • Karma: +157/-19
    • Zobrazit profil
(bash) jak ochránit soubor před nechtěným smazáním?
« kdy: 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
  • 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?

jmp

  • Závislák
  • ****
  • Příspěvků: 2595
  • Karma: +243/-32
    • Zobrazit profil
Re: (bash) jak ochránit soubor před nechtěným smazáním?
« Odpověď #1 kdy: 15 Květen 2011, 19:07:17 »
neni pro chattr potreba pripojit filesystem s parametrem, ktery na oddilu umozni pouziti rozsirenych atributu?

daysleeper

  • Závislák
  • ****
  • Příspěvků: 1206
  • Karma: +157/-19
    • Zobrazit profil
Re: (bash) jak ochránit soubor před nechtěným smazáním?
« Odpověď #2 kdy: 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

donny

  • Závislák
  • ****
  • Příspěvků: 1861
  • Karma: +174/-20
    • Zobrazit profil
Re: (bash) jak ochránit soubor před nechtěným smazáním?
« Odpověď #3 kdy: 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.
archlinux @ i7-6700/GTX1080 8G/32G DDR4/.5TB NVMe/WD RED 3TB | Raspbian 8 @ Raspberry Pi
Ever tried. Ever failed. No matter. Try again. Fail again. Fail better!

daysleeper

  • Závislák
  • ****
  • Příspěvků: 1206
  • Karma: +157/-19
    • Zobrazit profil
Re: (bash) jak ochránit soubor před nechtěným smazáním?
« Odpověď #4 kdy: 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.

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Guru
  • ******
  • Příspěvků: 5149
  • Karma: +303/-77
    • Zobrazit profil
Re: (bash) jak ochránit soubor před nechtěným smazáním?
« Odpověď #5 kdy: 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
« Poslední změna: 15 Květen 2011, 21:08:00 od sachy »
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

daysleeper

  • Závislák
  • ****
  • Příspěvků: 1206
  • Karma: +157/-19
    • Zobrazit profil
Re: (bash) jak ochránit soubor před nechtěným smazáním?
« Odpověď #6 kdy: 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.

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Guru
  • ******
  • Příspěvků: 5149
  • Karma: +303/-77
    • Zobrazit profil
Re: (bash) jak ochránit soubor před nechtěným smazáním?
« Odpověď #7 kdy: 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?
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3045
  • Karma: +484/-17
    • Zobrazit profil
    • GdH-Notes
Re: (bash) jak ochránit soubor před nechtěným smazáním?
« Odpověď #8 kdy: 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 :)

daysleeper

  • Závislák
  • ****
  • Příspěvků: 1206
  • Karma: +157/-19
    • Zobrazit profil
Re: (bash) jak ochránit soubor před nechtěným smazáním?
« Odpověď #9 kdy: 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)...

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Guru
  • ******
  • Příspěvků: 5149
  • Karma: +303/-77
    • Zobrazit profil
Re: (bash) jak ochránit soubor před nechtěným smazáním?
« Odpověď #10 kdy: 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.
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3045
  • Karma: +484/-17
    • Zobrazit profil
    • GdH-Notes
Re: (bash) jak ochránit soubor před nechtěným smazáním?
« Odpověď #11 kdy: 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.

daysleeper

  • Závislák
  • ****
  • Příspěvků: 1206
  • Karma: +157/-19
    • Zobrazit profil
Re: (bash) jak ochránit soubor před nechtěným smazáním?
« Odpověď #12 kdy: 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