Jak nejlépe na sdílený adresář (rw)?

Pavouk106

  • *****
  • 2 395
    • Zobrazit profil
    • Můj blog
    • E-mail
Jak nejlépe na sdílený adresář (rw)?
« kdy: 14. 04. 2014, 09:37:45 »
Zdravím,

potřeboval bych udělat (v Linuxu) adresář, do kterého budou moct přistupovat konkrétní/všichni uživtelé systmu včetně zápisu. Ideálně bych to měl tak, že by adresář byl např. na umístění /home/sdileny, data by byla přímo v něm a uživatelé by měli ve svých domovských adresářích pouze odkazy/symlinky.

Zároveň tenhle sdílený adresář budu chtít skriptem rsyncovat jednou za čas jinam a tím pádem mne zajímají mimo jiné také práva všech podadresářů a souborů. Chtěl bych je (nejspíš) všehcny vlastnit jako pavouk:pavouk.

Poraďte, jak (třeba) vysvětlit adresáři, že vše v něm bude mít vlastníka pavouk:pavouk a práva ugo+rw. Nebo to jde i jinak a lépe?

Předem díky
« Poslední změna: 14. 04. 2014, 14:03:56 od Petr Krčmář »


Lol Phirae

Re:Jak nejlépe udělat sdílený adresář (rw)?
« Odpověď #1 kdy: 14. 04. 2014, 09:53:17 »
data by byla přímo v něm a uživatelé by měli ve svých domovských adresářích pouze odkazy/symlinky.

Obávám se, že myšlenka zůstala nepochopena... Symlinky na co?

Peter

Re:Jak nejlépe udělat sdílený adresář (rw)?
« Odpověď #2 kdy: 14. 04. 2014, 10:34:01 »
sudo chown pavouk.pavouk /home/sdilene a chmod ugo+rw /home/sdilene

Aj keď by som dal radšej skuponu users, a v podadresári /home/sdilene/ by som vytvoril každému jeho pieskovisko ktoré si nastaví podľa potreby, a tom mu nalinkoval cez ln -s aj s parametrami.

Olaf

Re:Jak nejlépe udělat sdílený adresář (rw)?
« Odpověď #3 kdy: 14. 04. 2014, 11:07:36 »
Poraďte, jak (třeba) vysvětlit adresáři, že vše v něm bude mít vlastníka pavouk:pavouk a práva ugo+rw. Nebo to jde i jinak a lépe?

V Linuxu je vlastníkem vždy ten, kdo soubor (adresář, ...) vytvořil, oprávnění se naopak dědí. Za předpokladu, že nikdo z uživatelů nebude s oprávněními manipulovat (?!), stačí nastavit výchozí oprávnění pro adresář /home/sdileny. Pokud trváte na tom, že budete vlastníkem celého obsahu, musíte čas od času použít chown.

Jinak (netvrdím že lépe) to jde udělat tak, že do /home/sdileny namontujete FS, který přístupová práva neumí, např. FAT32.

PS: ugo+rw lze nahradit a+rw (all).

smoofy

  • *****
  • 1 056
    • Zobrazit profil
    • E-mail
Re:Jak nejlépe udělat sdílený adresář (rw)?
« Odpověď #4 kdy: 14. 04. 2014, 11:41:37 »
A k cemu vlastne potrebujes vlastnit vsechny ty adresare? Co je ucelem toho?


Pavouk106

  • *****
  • 2 395
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Jak nejlépe udělat sdílený adresář (rw)?
« Odpověď #5 kdy: 14. 04. 2014, 11:56:10 »
Ad. symlinky: to netreba resit, jde o prkotinu, ne o podstatnou cast veci.

Ad. vlastneni adresare a vseho v nem: budu delat rsync jinam, hodilo by se mit vsechno pod jednim uzivatelem.

Peter: To prave nechci. Chtel bych jedno velky piskoviste bez rozdilu.

Olaf: Takze to vypada, ze jinak to ani nepujde.

Mel jsem puvodne na mysli, zda nejde mit adresar tak, ze by vse v nem natvrdo delilo jeho nastaveni nehlede na to, kdo by to tam vkladal... Tzn. vlastnika, skupinu, prava.

dword


Re:Jak nejlépe udělat sdílený adresář (rw)?
« Odpověď #7 kdy: 14. 04. 2014, 12:22:45 »
Kompletní dědění práv Posixová práva ani ACL neumí. Základní požadavek – aby k datům mohlo přistupovat a zapisovat je víc lidí – by se klasicky řešil tak, že vytvoříte skupinu, všechny požadované uživatele do ní zařadíte a pak nastavíte právo rw- na společném adresáři téhle skupině. Problém pak ale je, že se uživatelé musejí starat o práva souborů a adresářů, které tam vytvářejí – pokud tam vytvoří soubor a neurčí mu nějaká práva, bude mít přiraženu výchozí skupinu uživatele, takže ostatní jej už nebudou moci přepsat (pokud bude mít typická práva rw-rw-r--). Tohle se dá obejít SGID bitem na společném adresáři – pak všechny nově vytvářené soubory adresáře zdědí skupinu z nadřazeného adresáře, ne skupinu uživatele. SGID příznak se pak rekurzivně nastavuje i pro adresáře vytvořené v tomto adresáři. Ale pokud uživatel do adresáře soubor nebo jiný adresář nakopíruje i se zachováním práv, dojde ke stejnému problému, tj. budete tam mít soubory nebo adresáře, které nemají nastavenou správnou skupinu nebo SGIDbit.

rsync bych neřešil tím, že budou mít všechny soubory stejného vlastníka. Buď bych jej také zařadil do nové skupiny (tím pádem by mohl soubory číst i zapisovat). Pokud byste chtěl, aby rsync mohl jen číst, přidal bych speciálnímu uživateli pro rsync právo přes ACL. Opět, když to nastavíte jako dědičné, bude se propisovat i do vytvořených podadresářů, ale vlastník souboru nebo adresáře to právo může odebrat.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Jak nejlépe udělat sdílený adresář (rw)?
« Odpověď #8 kdy: 14. 04. 2014, 13:23:37 »
BTW, kdyz ten rsync pobezi trebas z cronu pod rootem, tak jemu snad jedno, kdo ma na co jaka prava.

Re:Jak nejlépe udělat sdílený adresář (rw)?
« Odpověď #9 kdy: 14. 04. 2014, 13:34:43 »
BTW, kdyz ten rsync pobezi trebas z cronu pod rootem, tak jemu snad jedno, kdo ma na co jaka prava.
To ano, ale je otázka, zda je to správně, že ten rsync běží pod rootem.

Olaf

Re:Jak nejlépe udělat sdílený adresář (rw)?
« Odpověď #10 kdy: 14. 04. 2014, 14:23:57 »
V Linuxu je vlastníkem vždy ten, kdo soubor (adresář, ...) vytvořil, oprávnění se naopak dědí. ...

Kompletní dědění práv Posixová práva ani ACL neumí. ...

Omlouvám se za chybnou informaci. Pravdu má samozřejmě kolega Jirsák.

Dovolím si doplnit, že v Mac OS X (BSD) se ACL nastavují přímo pomocí chmod a umožňují nastavit i dědění oprávnění. Naopak vlasníka obsahu adresáře lze vnutit nastavením atributu SUID příslušného adresáře. Oprávnění včetně ACL se pak ověří pomocí ls (ls -le). Nějak se mi ty OS v hlavě prohodily :).

PS: Když už jsem u těch oprav :), u zmíněného FS FAT32 samozřejmě záleží, jak se namontuje (to ostatně platí u všech FS).

Pavouk106

  • *****
  • 2 395
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Jak nejlépe na sdílený adresář (rw)?
« Odpověď #11 kdy: 14. 04. 2014, 14:48:36 »
No, situace se má tak, že jednou za čas budu dělat ručně rsync. Rsync pojede přes SSHFS na jiný stroj. SSHFS běží přes FUSE a tím pádem závisí na uživateli. Takže rootem nespouštět. Ve finále by se dalo říct, že stačí při rsync nebrat v potaz původního vlastníka a nahradit je vlastní sadou (pavouk:pavouk). Otázka ale je, když pak budu dělat zpětný rsync (pro případ, že se změní data na tom vzdáleném stroji), jestli rsync nevezme vlastníka v potaz při řešení duplicity... Tzn. jestli si rsync bude myslet, že už data existují, i když budou mít jiné vlastníky.

Snad je to srozumitelný.

Jednoduše jde o následující: Jde o desktop, ne server nebo kritickou věc. Mám jeden FS (EXT4) mountovaný jako /home. Je na něm víc uživatelů. Chci aby uživatelé mohli navzájem do jednoho adresáře, kde bude hudba, fotky, filmy, ... (odtud si to taky vezme miniDLNA, to ale jen na okraj, to neřeším). Klidně ať si každej uživatel tvoří co chce, ale jde mi o to, abych to pod jedním užiatelem mohl celé rsyncovat jinam a to i naopak - odjinud do toho adresáře - a to bez problémů.

(Že já blbec se nedokážu nikdy vyžvejknout napoprvý)

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Jak nejlépe udělat sdílený adresář (rw)?
« Odpověď #12 kdy: 14. 04. 2014, 15:37:41 »
BTW, kdyz ten rsync pobezi trebas z cronu pod rootem, tak jemu snad jedno, kdo ma na co jaka prava.
To ano, ale je otázka, zda je to správně, že ten rsync běží pod rootem.

Proc ne? Zalezi na tom, jestli mate cilove zarizeni pod kontrolou. Krome toho mate moznost pustit si tam na localhostu rsyncd a tlacit to na nej skrz ssh tunel.

Ve finále by se dalo říct, že stačí při rsync nebrat v potaz původního vlastníka a nahradit je vlastní sadou (pavouk:pavouk). Otázka ale je, když pak budu dělat zpětný rsync (pro případ, že se změní data na tom vzdáleném stroji), jestli rsync nevezme vlastníka v potaz při řešení duplicity...

Rsyncu se da hodit parametr --no-owner. Krome toho by bylo dobre vedet, kdy byste eventuelne rsyncoval zpet. Ma to byt pouze pro pripad havarie, tedy jako zaloha? Pokud ano, tak asi neni nutne nejake vlastniky resit. Proste se to tam jednou za havarii disku nejak narve rucne a prava a vlastnici se upravi, pokud to bude potreba.

Re:Jak nejlépe na sdílený adresář (rw)?
« Odpověď #13 kdy: 14. 04. 2014, 15:42:19 »
To bych řešil úplně jinak. rsync pod rootem přímo na vzdálený stroj (bez sshfs, ať tam ten rsync vůbec k něčemu je). Seznam adresářů, které se mají synchronizovat, předáte jako parametry. Nemusíte pak řešit žádná práva na soubory, žádné odkazy, zálohuje se přesně to, co je na disku (včetně vlastníků a práv). A jako bonus se nebude pokaždé kopírovat všechno, ale využijete vlastnosti rsyncu a po síti budete přenášet jen změněná data a kontrolní součty.

Pavouk106

  • *****
  • 2 395
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Jak nejlépe na sdílený adresář (rw)?
« Odpověď #14 kdy: 14. 04. 2014, 16:03:52 »
To bych řešil úplně jinak. rsync pod rootem přímo na vzdálený stroj (bez sshfs, ať tam ten rsync vůbec k něčemu je). Seznam adresářů, které se mají synchronizovat, předáte jako parametry. Nemusíte pak řešit žádná práva na soubory, žádné odkazy, zálohuje se přesně to, co je na disku (včetně vlastníků a práv). A jako bonus se nebude pokaždé kopírovat všechno, ale využijete vlastnosti rsyncu a po síti budete přenášet jen změněná data a kontrolní součty.
Může být. Nicméně stále potřebuju hnout s tím obřím pískovištěm, kde si může každý plácat svoje bábovičky + každý může plácat kohokoliv jiného bábovičky. A to bez ručních zásahů.