Před časem jsem narazil na ošklivost ve
Finderu, který
nezobrazuje soubory, pokud jejich název obsahuje složené UTF-8 znaky, tj. nikoli znak s diakritikou (zakódované do dvou bytů), ale znak + znak diakritiky (zakódované do 3 bytů).
Stává se mi, že uživatelé z Windows uloží soubory, které obsahují v názvu jednou tak, podruhé jinak zakódované znaky. V Linuxu se mi pochopitelně obojí zobrazuje nerozlišitelně stejně, dokud jsem nenechal název převést na hexadecimální čísla. K odhalení může pomoct Putty, který za určitých okolností zobrazuje složené znaky špatně.
Četnost s jakou Windows něco takového provedou je nezanedbatelná. Možná každý desátý soubor? Nepodařilo se mi vypozorovat jestli to jsou názvy, které uživatel vytvoří zkopírováním odněkud, nebo naklepe na klávesnici, nebo jestli to je specificky častější pro určitý software (stává se to u souborů s MS Office).
Nějak se mi to podařilo vyřešit pomocí vfs_fruit v kombinaci s mangled names (vypne překódování názvů do zkráceného názvu pouze z osmi znaků ASCII) a v kombinaci s unix charset a display charset, viz relevantní kousek konfigurace.
Modul catia je dle manuálu nutný pro volbu fruit:encoding = native.
unix charset = UTF-8
display charset = UTF-8
...
vfs object = recycle fruit catia streams_xattr
fruit:encoding = native
fruit:resource = file
fruit:posix_rename = yes
fruit:veto_appledouble = yes
fruit:nfs_aces = no
fruit:wipe_intentionally_left_blank_rfork = true
mangled names = no
Následně v každém sharu mám zapnuto ve shodě s globálním nastavením (kdesi psali, že to je potřeba):
vfs object = recycle fruit catia streams_xattr
Nejsem si jistý volbou fruit:encoding = native vs private. Pochopil jsem, že jde o překódovávání nepovolených znaků do privátního rozahu UTF-8, ale jakých přesně znaků? Týká se to i složených znaků s diakritikou? Nebo jen znaků, které nejsou povolené na unixlike systémech, ale na Windows nevadí? Manuál mi připadá neúplný.
A která z voleb vlastně zajišťuje překódování složených znaků? Jsou místa, kde vfs_fruit nemám a MACkaři mi problémy nehlásili.
https://www.samba.org/samba/docs/current/man-html/vfs_fruit.8.htmlProblém je, že když jsem
fruit:encoding nastavil na
private, tak
začal padat Finder při pokusu o vstup do některých složek s diakritikou v názvu. Pád Finderu se projeví tak, že krátce po otevření složky (1s?) se zavřou všechna okna Finderu a odpojí se od Samby. Uživatel se pak musí znovu přihlásit.
Jako upřímně - mě to přijde jako dlouhodobě neřešená chyba MAC OSX a ne problém, který by se měl řešit na Sambě. Ale protože od Apple řešení očekávat nelze (dohledal jsem diskuze i 10 let staré, kde měl kdosi podobný problém), hledám rovnák na vohejbák pomocí nastavení Samby.
Jakou s tímto máte zkušenost?Nepřipadá mi správné uživatelům radit, aby diakritiku v názvech přestali používat, jako to bývalo běžné v dobách DOSu a W9x.