Portál AbcLinuxu, 8. května 2025 23:00
Řešení dotazu:
#!/bin/sh Directory="/home/user/scanner" trap "exit" INT while Result=$(inotifywait --quiet --event delete_self ${Directory}); do mkdir -pv ${Directory} sleep 1 doneNo a spustit to po starte systemu: echo"/cesta/k/tomuto/skriptu" >> /etc/rc.d/rc.local
Toto platí:
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á.
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ší.
[sdilena] force user = smazat force group = smazat directory mask = 0775 create mask = 0665 #force directory mode = 0775 #force create mode = 0665
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á.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.