Portál AbcLinuxu, 12. května 2025 18:20

Dotaz: Samba web browser

26.4.2013 10:41 Mark
Samba web browser
Přečteno: 477×
Odpovědět | Admin
Zdravim

mate nekdo zkusenosti s nejakym web browserem nad Sambou, tedy zpristupnit data na sambe pres www rozhrani. Pouzil jsem smbwebclient, ale mam problemy s cestinou, respektive pokud v adresari ktery listuji je neco cesky tak se to cely poprasi a vystup se rozpadne, jelikoz to nejak nezvlada ty ceske znaky. (je to interne ve sve podstate jen zabaleny smbclient, ktery to vola z php).

Existuje jeste neco jineho? Nejak se mi nepodarilo nic nalezt. Marek.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.4.2013 11:51 komodo | skóre: 27 | blog: komodo
Rozbalit Rozbalit vše Re: Samba web browser
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jestli sa jedna jenom o cteni, ta bych to udelal nasledovne.

1. mount samba sdileni do nejakeho adresare na serveru, treba /mnt/samba

2. nasmerovat webroot do danyho adresare

3. pro danej adresar nastavit Options +Indexes

26.4.2013 12:00 Mark
Rozbalit Rozbalit vše Re: Samba web browser
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bohuzel to neni jen pro cteni.

Ale zjistil jsem zajimavou vec v problemu s cestinou po zapnut debug mod v smbwebclient na max, tedy logovat prikazy i vystup.

Pokud udelam prikaz, ktery provadi smbwebclient jako root v terminalu, vrati se mi seznam souboru a adresaru v poradku vcetne cestiny a vse vypada OK --- /usr/bin/smbclient '//192.168.35.15/duff' -c 'duff' -D 'public' -N -U 'administrator%****' -d 0 -W 'XYZ' -O 'TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192' -b 12002 >&1 ---

Ovsem v logu je smbwebclient je tento vystup uz nejak popraseny, ten prikaz o kus vyse jsem zkopiroval prave z logu, takze je plne identicky.

Nechapu jak v tom muze byt rozdil, zkusil jsem su - apache , abyc byl na stejne jako web server , ale i tak vystup do konsole je v poradku, jen v te aplikaci to nejak vraci poskozene. Nechapu Mark

26.4.2013 12:16 VSi | skóre: 28
Rozbalit Rozbalit vše Re: Samba web browser
Používám smbwebclient silně upravený, měl jsem s tím podobný problém. Myslím, že šlo o nastavení locales, a pomohlo v konfiguraci použít:
var $cfgSmbClient = 'export LC_ALL="cs_CZ.UTF-8"; smbclient';
26.4.2013 12:57 Mark
Rozbalit Rozbalit vše Re: Samba web browser
Ha skvele,

dobra pomoc, uz se zobrazuji znaky v poradku, vidim ve vystupu ceske nazvy souboru a adresaru s cestinou, jeste droby zadrhel, do adresare nelze vstoup nebo, soubor nelze stahnout nebo smazat.

Netusite jak jeste toto obejit? Vypada to, ze tomu nechutna neco v prikazu smbclient, ktery nasledne vraci OBJECT_NAME_NOT_FOUND.

Mark
26.4.2013 13:13 VSi | skóre: 28
Rozbalit Rozbalit vše Re: Samba web browser
Jaký příkaz to podle logu pouští? Je tam čeština v UTF-8 správně? Myslím, že chování smbclient ohledně kódování závisí na konfiguraci v smb.conf - co tam máte v unix charset?
26.4.2013 13:27 Mark
Rozbalit Rozbalit vše Re: Samba web browser
Na sambe kam se pripojuji z web serveru jsem v smb.conf directivu unix charset nenasel, co koukam do dokumentace tak defaulni hodnota je prave UTF-8.

Zkousel jsem jeste schvalne jako root pres smvclienta v tom interaktivnim modu vlezt do adresare Zeměpis a stahnout nějaky soubor s diakritikou a to lze, takze ze samby to chodi zrejme ok.

V logu ze smbwebclient.php jsou ovsem requesty zmrsene, takze si rikam, ze to musi nekde osakavat ten php script.
26.4.2013 13:34 VSi | skóre: 28
Rozbalit Rozbalit vše Re: Samba web browser
Jde o smb.conf na klientovi - na stroji, kde se pouští smbclient. Ale UTF-8 bude default, takže tím to asi není.

Pokud je to už v logu špatně, a koukáte na ten log prohlížečem, co správně zachází s UTF-8, tak je chyba skutečně už v PHP. Možná jestli tam je nějaký rewrite přes .htaccess, tak tam by teoreticky mohla být chyba taky.

Generuje to vůbec správně odkazy? Schoval bych si URL, na kterou vede nefunkční odkaz, a pak dal na začátek php skriptu něco jako print_r($_GET); die; - jestli to není špatně už na začátku. Jinak asi nezbyde, než se podívat co to s tím požadavkem pak dělá dál, než se pouští smbclient.
26.4.2013 13:52 Mark
Rozbalit Rozbalit vše Re: Samba web browser
Uz se tim prokousavam, ale je to dost neprehledny script. Zkusim jsem chytit promernou path co leze jako parametr v URL a vypsat si ji.

Array ( [path] => public/Zeměpis )

Takze to vypada pri vstupu dobre, nicmene v logu leze do smbclienta neco jineho, respektive z toho vypadavaji znaky s diakritikou a zustava pouze ascii, mno tak to zkusim najit snad to nedela fce escapeshellarg().

Mark

26.4.2013 13:55 VSi | skóre: 28
Rozbalit Rozbalit vše Re: Samba web browser
Ten escapeshellarg, to bude ono. Na začátek php skriptu přidejte setlocale(LC_CTYPE, "en_US.UTF-8"); nebo setlocale(LC_CTYPE, "cs_CZ.UTF-8");
26.4.2013 14:34 Mark
Rozbalit Rozbalit vše Re: Samba web browser
Funguje, jsem nadsen a moc Vam dekuji.

Jeste odbocim, lze nejak zaridim, aby mi smbwebclient vypsal hned pri startu vsechny sdile prostredky co najde, musi se to zaridit pomoci smbclient -L smbstroj, ale nechce to fungovat.

V logu to hada tuto chybu, ale nepodarilo se mi zjistit kam by melo to / prijit.

export LC_ALL="cs_CZ.UTF-8"; /usr/bin/smbclient -L '192.168.5.2' -N -U 'administrator%****' -d 0 2 >&1 [smbclient] 2: Not enough '\' characters in service [/smbclient]

Mark Ale jinak je to skvele, ze se to podarilo uchodit.

26.4.2013 14:44 Mark
Rozbalit Rozbalit vše Re: Samba web browser
Tak opravena i tato posledni vada na krase. Diky vsem. Mark
26.4.2013 13:16 Mark
Rozbalit Rozbalit vše Re: Samba web browser
Tak jsem jeste z logu zjistil,ze kdyz se pokusim stahnout soubor nebo otevrit adresar obsahujici diakriktiku, tak v logu webclienta je v prikazu smbclient tento nazev zbaven veskere diakritiky, respektive znamky s diakritikou jsou vypusteny takze napr. z puvodniho Zeměpis -> Zempis.

Tohle musi neco delat v tom php scriptu, jdu hledat dale. Mark

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.