Identifikace souboru

Sadam

Re:Identifikace souboru
« Odpověď #15 kdy: 12. 11. 2017, 16:07:58 »
Tak si spocitej sum souboru napr sha256sum to je UUID souboru a dat v nem... Pokud potrebujes neco jineho (menit data bez zmeny UUID) tak si to narvi do dat v tom souboru+digitalni podpis at mas jistotu ze ti to nikdo vevnitr nezmeni


Kit

Re:Identifikace souboru
« Odpověď #16 kdy: 12. 11. 2017, 16:11:56 »
Rozšířené atributy můžeš používat a můžeš podle nich i filtrovat, ale každý souborový systém je nemá. Pokud takový soubor přesuneš třeba na FAT a zpět, tak obsah rozšířených atributů zmizí.
Rozšířené atributy bych vyzkoušel ale nevím co přesně hledat?
Kód: [Vybrat]
man 5 attr

Re:Identifikace souboru
« Odpověď #17 kdy: 12. 11. 2017, 16:14:14 »
Zkoušel jsem to vytvořit na dalších x serverech a při stejném názvu je to číslo stený. Super, potřebuji ale slyšet to "ALE..."
Škoda, že to nefunguje i pro adresáře :( Zkoušel jsem ls -i /dir1/dir2 ale vypíše to hromadně soubory uvnitř toho adresáře. Myslel jsem, že v linuxu jsou všechno soubory.
V tom případě zkoušíte něco úplně jiného. Číslo i-node nemá s názvem nic společného, takže když vytvoříte stejný název souboru na různých systémech, bude mít pokaždé jiné číslo i-node. A adresáře také mají číslo i-node, protože v unixových souborových systémech je adresář akorát speciální soubor.

Opravdu by bylo nejlepší, kdybyste napsal, co se vlastně pokoušíte řešit. Ona je totiž otázka, zda pro vás „stejný soubor“ je opravdu to samé, jako pro souborový systém. Osobně si moc nedovedu představit případ, kdy bych měl soubor, smazal ho, na jeho místě vytvořil nový s identickým obsahem a atributy, a chtěl bych, aby to bylo opravdu považováno za jiný soubor.

Jaké tajemství, potřebuji navázat nějaké akce pro daný soubor a název souboru nic neřeší, jelikož jde přejmenovat.
Tak definujte, co je to ten „daný soubor“, jak ho poznáte nebo jak ho odlišíte od ostatních.

Kit

Re:Identifikace souboru
« Odpověď #18 kdy: 12. 11. 2017, 16:20:25 »
Tak si spocitej sum souboru napr sha256sum to je UUID souboru a dat v nem... Pokud potrebujes neco jineho (menit data bez zmeny UUID) tak si to narvi do dat v tom souboru+digitalni podpis at mas jistotu ze ti to nikdo vevnitr nezmeni

Tohle běžně používám místo velkých blobů. V databázi mám jen metadata a zmíněný checksum. Výhodou je, že to samo dělá deduplikaci, což u velkých souborů představuje významnou úsporu.

Mára

Re:Identifikace souboru
« Odpověď #19 kdy: 12. 11. 2017, 16:40:10 »
Rozšířené atributy můžeš používat a můžeš podle nich i filtrovat, ale každý souborový systém je nemá. Pokud takový soubor přesuneš třeba na FAT a zpět, tak obsah rozšířených atributů zmizí.
Rozšířené atributy bych vyzkoušel ale nevím co přesně hledat?
Kód: [Vybrat]
man 5 attr


attr je fakt super, existuje způsob jak takové soubory zálohovat? Klasický Tar/Gzip to nedá


Re:Identifikace souboru
« Odpověď #20 kdy: 12. 11. 2017, 16:41:35 »
Tak si spocitej sum souboru napr sha256sum to je UUID souboru a dat v nem... Pokud potrebujes neco jineho (menit data bez zmeny UUID) tak si to narvi do dat v tom souboru+digitalni podpis at mas jistotu ze ti to nikdo vevnitr nezmeni

Tohle běžně používám místo velkých blobů. V databázi mám jen metadata a zmíněný checksum. Výhodou je, že to samo dělá deduplikaci, což u velkých souborů představuje významnou úsporu.
Problém je, že my nevíme, zda „daný soubor“ opravdu znamená obsah toho souboru. Třeba „daný soubor“ znamená něco jiného a obsah „daného souboru“ se může měnit.

Mára

Re:Identifikace souboru
« Odpověď #21 kdy: 12. 11. 2017, 16:41:49 »
Tak si spocitej sum souboru napr sha256sum to je UUID souboru a dat v nem... Pokud potrebujes neco jineho (menit data bez zmeny UUID) tak si to narvi do dat v tom souboru+digitalni podpis at mas jistotu ze ti to nikdo vevnitr nezmeni
To nelze použít, soubory mění svůj obsah, čili se bude měnit i hash.

Re:Identifikace souboru
« Odpověď #22 kdy: 12. 11. 2017, 16:44:13 »
attr je fakt super, existuje způsob jak takové soubory zálohovat? Klasický Tar/Gzip to nedá
tar rozšířené atributy umí zálohovat, pokud nepoužíváte nějakou prehistorickou verzi. Podívejte se na volbu --xattrs.

Mára

Re:Identifikace souboru
« Odpověď #23 kdy: 12. 11. 2017, 16:45:21 »
Tak si spocitej sum souboru napr sha256sum to je UUID souboru a dat v nem... Pokud potrebujes neco jineho (menit data bez zmeny UUID) tak si to narvi do dat v tom souboru+digitalni podpis at mas jistotu ze ti to nikdo vevnitr nezmeni

Tohle běžně používám místo velkých blobů. V databázi mám jen metadata a zmíněný checksum. Výhodou je, že to samo dělá deduplikaci, což u velkých souborů představuje významnou úsporu.
Problém je, že my nevíme, zda „daný soubor“ opravdu znamená obsah toho souboru. Třeba „daný soubor“ znamená něco jiného a obsah „daného souboru“ se může měnit.

Potřebuji při vytvoření souboru zadat unikátní ID, které se nezmění ani když se soubor přejmenuje, změní se jeho obsah, jde zálohovat/obnovit a nejlépe bude součástí toho samotného souboru.

Mára

Re:Identifikace souboru
« Odpověď #24 kdy: 12. 11. 2017, 16:48:34 »
attr je fakt super, existuje způsob jak takové soubory zálohovat? Klasický Tar/Gzip to nedá
tar rozšířené atributy umí zálohovat, pokud nepoužíváte nějakou prehistorickou verzi. Podívejte se na volbu --xattrs.
To by bylo fajn, večer na to mrknu, teď musím do špitálu. zatím díky všem za informace.

Re:Identifikace souboru
« Odpověď #25 kdy: 12. 11. 2017, 16:51:29 »
Potřebuji při vytvoření souboru zadat unikátní ID, které se nezmění ani když se soubor přejmenuje, změní se jeho obsah, jde zálohovat/obnovit a nejlépe bude součástí toho samotného souboru.
Jenže to právě musíte definovat, co je to „ten samotný soubor“. Když místo přejmenování souboru ten soubor zkopírujete a původní smažete, je ten zkopírovaný soubor „ten samotný soubor“? Když uděláte kopii souboru, budete mít „ten samotný soubor“ dvakrát? Při kopírování se můžete rozhodnout, zda chcete nebo nechcete kopírovat rozšířené atributy… Rozšířené atributy může číst a nastavovat kdokoli, kdo má patřičná oprávnění k souboru – nebude vám vadit, když někdo ten váš rozšířený atribut z vašeho souboru zkopíruje na jiný soubor? Nebo ho z původního souboru smaže?

Opravdu těžko radit, když nevíme, čeho chcete docílit. A upřímně řečeno, obávám se, že ani vy sám nevíte, co podle vás je „ten samý soubor“ a co už je jiný soubor.

Kit

Re:Identifikace souboru
« Odpověď #26 kdy: 12. 11. 2017, 17:04:35 »
Potřebuji při vytvoření souboru zadat unikátní ID, které se nezmění ani když se soubor přejmenuje, změní se jeho obsah, jde zálohovat/obnovit a nejlépe bude součástí toho samotného souboru.

Problém je, že soubor lze nejen přejmenovat, ale je možné mu i měnit atributy.

Když nastavíš adresář i se soubory na 750, resp. 640, tak můžeš do něj řízeně zapisovat aplikací s nastaveným bitem SUID na vlastníka toho adresáře. Nemusíš se pak bát ani přejmenování, protože členové skupiny z něj budou moci pouze číst.

jiwopene@gmail.com

Re:Identifikace souboru
« Odpověď #27 kdy: 12. 11. 2017, 17:47:13 »
Jestli jde o obsah, pomůže kontrolní součet nebo sám soubor (porovnat obsah) a tuto informaci upravovat. Nemůže být ten soubor někde schovaný a pracovat jen se symbolickým odkazem? Některé formáty (exe, docx, png, ...) snesou i nějaká data navíc (na konci -- exe, png; jako v zipu -- docx), ale o ně většinou příjdete po přepisu. Smazáním a znovuvytvořením také přijdete o tyto informace, jsou-li uloženy u něj či v něm. Ideální by bylo ho mít pod "dohledem" programu, který bude do druhého souboru ukládat kontrolní součet či cestu k němu. A co třeba skupina uživatelů (tu tar také uloží).

Re:Identifikace souboru
« Odpověď #28 kdy: 13. 11. 2017, 07:16:35 »
Zdravím. Existuje v linuxu ještě nějaká jiná identifikace souboru než jeho název? Hledám nejlépe něco, co se vytvoří při jeho vytvoření a nezmění se po jeho přejmenování. Třeba nějaké UID. Děkuji

Nic takového neexistuje, a je to dáno z podstaty věci. Filename je jedinečný identifikátor pro entitu "souboru", ale už není s to řešit vazbu na skutečná data.

Může dojít k operacím, kdy se mění obsah vs. filename, ale k těm změnám dochází na obou stranách toho řetězu. Na straně "filename" se jedná zejména o přejmenování, ale taky o odlinkování či přelinkování, pokud jde o hardlink.

U změny dat, kromě těch běžných, si dovolím upozornit dvě funkce, které tu vazbu narušují: u windows shadow copy, u jiných filesystémů pak CoW (copy on write).

Tedy vazba mezi filenamem a jeho daty je M:N.

Jedinou možností, kterou máte, je sledovat např. číslo inode, nebo pár dalších údajů, které Vám zvýší jistotu určení, že se díváte stále na stejná data. K tomu můžete přidat digesty (např. SHA-3). Ani jedna z metod však není 100%, může dojít ke změnám, které nic z toho nezmění, i digest může být teoreticky stejný při rozdílných datech.

Nedotknutelnost dat v čase (včetně vazby soubor:data) může řešit např. snapshotování (ZFS).

Zkuste popsat situaci, kterou řešíte, třeba se na ni najde jiné řešení, které bude založené na něčem jiném.

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:Identifikace souboru
« Odpověď #29 kdy: 13. 11. 2017, 08:16:52 »
Kód: [Vybrat]
$ attr -s user.uuid -V `uuid -v5 ns:URL file:///PATH_TO_FILE` PATH_TO_FILE
Atributu „user.uuid“ souboru FILE nastavena 36bajtová hodnota:
xxxxxxxx-yyyy-zzzz-aaaa-bbbbbbbbbbbb

Kód: [Vybrat]
$ attr -l PATH_TO_FILE
Atribut „user.uuid“ souboru FILE má 36bajtovou hodnotu

$ attr -g user.uuid PATH_TO_FILE
Atribut „user.uuid“ souboru FILE měl 36bajtovou hodnotu:
xxxxxxxx-yyyy-zzzz-aaaa-bbbbbbbbbbbb