Portál AbcLinuxu, 8. května 2025 23:00

Dotaz: Souborovy server, prava k adresarum

26.5.2014 15:01 Hafajs | skóre: 12
Souborovy server, prava k adresarum
Přečteno: 519×
Odpovědět | Admin
Zdravim všechny. Mam nasledujici problém a dle dosavadního hledani mam dojem, ze chci asi nesplnitelne z principu, ale pro jistotu se zeptam.

Mam adresar sdileny SMB (nazveme jej "sdileny"). Je verejne pristupny vsem. Každý ma pravo delat si v nem co chce, takova cochcarna. Je urcen k predavani souboru mezi stanicemi, ne uskladneni dat. V tomto adresari bych chtěl mit podadresar (nazveme jej "skener"), do kterého sitovy skener hrne naskenovane dokumenty, které muze zase každý cist i mazat.

Ale tento adresar (skener), bych potreboval mit nesmazatelny. Protože když mi ho na zakladete cochcarny v adresari (sdileny) někdo smazne, sitovy skener se pak divi, kam je nasmerovan. Jednoduse receno, potrebuji mit adresářovou strukturu uživatelem nemennou, ale uživatelem libovolne doplnitelnou jak o adresare, tak soubory s moznosti R W X.

Napadlo mne pouzit stickbit na nadrazeny adresar (sdileny), ale to pak nebudou moci všichni delat všechno. Proste jsem nenalezl jde-li to poresit. Diky za nejake nakopnuti.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.5.2014 15:32 ja
Rozbalit Rozbalit vše Re: Souborovy server, prava k adresarum
Odpovědět | | Sbalit | Link | Blokovat | Admin
chattr?
26.5.2014 15:49 ja
Rozbalit Rozbalit vše Re: Souborovy server, prava k adresarum
Sorry - blbost - teraz som si to uvedomil. Tak mozno existuje aj nejake normalnejsie a jednoduchsie riesenie, ale mna momentalne napada len pouzit inotify-tools:
#!/bin/sh

Directory="/home/user/scanner"

trap "exit" INT

while Result=$(inotifywait --quiet --event delete_self ${Directory});
  do
    mkdir -pv ${Directory}
    sleep 1
  done
No a spustit to po starte systemu: echo"/cesta/k/tomuto/skriptu" >> /etc/rc.d/rc.local
26.5.2014 15:43 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
Rozbalit Rozbalit vše Re: Souborovy server, prava k adresarum
Odpovědět | | Sbalit | Link | Blokovat | Admin

Toto platí:

  1. V adresáři s právy 755 může cokoliv vytvářet a mazat jenom vlastník.
  2. V adresáři s právy 777 může každý cokoliv vytvářet a mazat.
  3. V adresáři s právy 1777 může každý vytvářet cokoliv, ale mazat jenom to, co je jeho.
  4. Neprázdné adresáře není možné mazat.

Pokud v adresáři sdileny s právy 777 vytvoříme uloziste s právy 755 a v něm skener opět s právy 777, nebude moci běžný uživatel žádný ze jmenovaných adresářů vymazat.

Možná by šly použít i nějaké zvláštní atributy nebo ACL, ale nic jednoduššího než výše uvedené mě nenapadá.

26.5.2014 15:51 ja
Rozbalit Rozbalit vše Re: Souborovy server, prava k adresarum
26.5.2014 16:08 hm
Rozbalit Rozbalit vše Re: Souborovy server, prava k adresarum
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nějaké nápady už tu padly. Mě napadá snad jen - v adresáři skeneru třeba vytvořit soubor s atributem "i" (chattr +i soubor). Ten (a ani jeho adresář) pak smazat nepůjde. Aby to nevypadalo tak blbě, mohla by v tom souboru být třeba nějaká stručná nápověda apod.
26.5.2014 18:56 pavele
Rozbalit Rozbalit vše Re: Souborovy server, prava k adresarum
Já mám v takovém adresáři soubor .noremove s právy jen pro čtení a v konfiguraci sdíleného adresáře Samby řádek s: veto files = /.?*/
Řešení 2× (#Tom, Hafajs (tazatel))
26.5.2014 19:43 Filip Jirsák
Rozbalit Rozbalit vše Re: Souborovy server, prava k adresarum
Odpovědět | | Sbalit | Link | Blokovat | Admin
V Unixu jsou soubory a podadresáře obsahem nadřízeného adresáře. Právo w na tom nadřízeném adresáři znamená, že uživatel může měnit obsah toho adresáře - tj. vytvářet a mazat soubory a adresáře a přejmenovávat je. Vy byste chtěl k části toho obsahu adresáře (jednomu podadresáři) nastavit jiná práva, než zbytku obsahu toho adresáře. To s unixovými právy nejde.

Jak tady někdo radil přidat do adresáře soubor, který ti uživatelé nemohou smazat, to by zabránilo smazání adresáře, ale nezabránilo by to přejmenování.

Atribut immutable, který podporují některé souborové systémy, vám přímo také nepomůže, protože sice zabrání smazání nebo přejmenování adresáře, ale zároveň zabrání vytvářet v něm soubory nebo jiné adresáře. Ale pokud můžete vytvořit dva v sobě vytvořené adresáře (třeba skener/naskenovano), tomu adresáři skener nastavíte atribut immutable (samozřejmě pokud používáte souborový systém, který jej podporuje) chattr +i skener, nepůjde s adresářem skener ani s skener/naskenovano hnout, ale uvnitř naskenovano už mohou uživatelé řádit dle libosti. Pokud byste ten adresář pak chtěl smazat, chattr -i skener ten atribut zase zruší.
26.5.2014 21:34 Hafajs | skóre: 12
Rozbalit Rozbalit vše Re: Souborovy server, prava k adresarum
Super, diky moc vsem za snahu. Ten figl s nesmazatelnym souborem mne mel napadnout :(. Na ACL jsem koukal, ale podle mne to problem neresi.

Takhle "od pasu" se mi nejvic libi rada od p. Jirsaka. Dnes uz na to nemam silu, zitra se k tomu snad dostanu a hned podam zpravu.
26.5.2014 21:45 pavele
Rozbalit Rozbalit vše Re: Souborovy server, prava k adresarum
A nestačil by jednoduše sticky bit na adresář sdileny a podadresář skener by měl nastaveného uživatele "nesmazatelný" a skupinu "smazat" s právy rwx-rwx-rx a v smb.conf: directory mask = 0775 ?
26.5.2014 22:14 pavele
Rozbalit Rozbalit vše Re: Souborovy server, prava k adresarum
A samozřejmě:
[sdilena]
force user = smazat
force group = smazat
directory mask = 0775
create mask = 0665
#force directory mode = 0775
#force create mode = 0665
27.5.2014 08:01 Filip Jirsák
Rozbalit Rozbalit vše Re: Souborovy server, prava k adresarum
Pro adresář skener by to stačilo, ale změnilo by se tím chování toho sdíleného adresáře – uživatelé by manipulovat (přejmenovávat, mazat) pouze se svými soubory a adresáři. To předpokládám není chtěné chování, protože to asi funguje tak, že já do sdíleného adresáře něco nahraju a kolega si to tam vyzvedne a smaže. Se sticky bitem by musel dát vědět opět mně, že už si to nahrál, a smazat bych to musel já.
27.5.2014 15:11 pavele
Rozbalit Rozbalit vše Re: Souborovy server, prava k adresarum
Ne v případě nastavení force user a force group - k adresáři by přistupovalo více uživatelů, ale ukládání a další manipulace se soubory by byly pod jedním uživatelem.
27.5.2014 20:48 Hafajs | skóre: 12
Rozbalit Rozbalit vše Re: Souborovy server, prava k adresarum
Tak jeste jednou doky vsem, zejmena panu Jirsakovi. Overeno. Jednoduse, elegantne, funkcne chattrem :)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.