[OT] Dateinamen mit "Sonderzeichen" auf SMB Share anlegen

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

[OT] Dateinamen mit "Sonderzeichen" auf SMB Share anlegen

Alexander Skwar-11
Tach auch!

Ich habe eine Buffalo Linkstation HD-HLAN250. Hierbei handelt
es sich um ein NAS Device für den Privatkunden Markt. Auf dieses
Device kann man per SMB oder FTP zugreifen, um Dateien abzulegen
und abzurufen.

Nun versuche ich eine Datei mit "Sonderzeichen" wie ä, ö, ü, ß, €
oder so im Dateinamen auf dem Gerät abzulegen. Um Zugriff zu
erhalten, habe ich in meiner /etc/fstab eingefügt:

//HD/share      /HD/TEST        smbfs
noauto,credentials=/local/conf/hd-credentials,uid=guest,gid=users,fmask=0775,dmask=0775,workgroup=EUROPE,rw,lfs,iocharset=unicode,codepage=cp850 0 0

Danach habe ich /HD/TEST gemounted: "mount /HD/TEST".

Nun kann ich von Linux aus ohne Probleme eine Datei mit einem
Namen wie "blöder name" anlegen. Greife ich allerdings mit
Windows XP auf diese Freigabe zu, dann wird der Dateiname als
"blöder name" angezeigt. Das rührt vermutlich daher, das mein
Linux System quasi überall UTF-8, also Unicode, verwendet.

Lege ich von Windows aus eine Datei mit Namen "blöder name"
an, so zeigt ls mir den Namen als "bl?der name" an - ich
gehe davon aus, dass das ? kein "richtiges" Fragezeichen
ist, sondern eine Repräsentierung des Zeichens.

Kopiere ich "blöder name" per FTP (lftp) auf das Device, so
habe ich die gleichen Probleme mit dem Dateinamen.

Ich habe auch schon versucht, die Freigabe mit "cifs"
als "Dateisystem"typ zu mounten:

//HD/share      /HD/TEST2       cifs
noauto,credentials=/local/conf/hd-credentials,uid=guest,gid=users,file_mode=0775,dir_mode=0775,domain=EUROPE,rw,setuids,noperm,nomapchars,soft,serverinoi,iocharset=iso8859-15
0 0

Nicht wirklich erfolgreich - jetzt kann noch nicht mal mehr
das gleiche OS die Umlaute sehen :(

[10:24:12 alexander@server:~] $ touch /HD/TEST2/blöder_name
[10:24:29 alexander@server:~] $ ls -la /HD/TEST2/bl*me
-rwxrwxr-x  1 guest users 0  6. Nov 10:24 /HD/TEST2/bl ?der_name

Windows zeigt den Namen als "bl Âder_name" an.

In den Grundeinstellungen der LS2 kann man als "Character
Code" zwischen u.a. cp850, cp437 und u.a. ISO8859-1, ISO8859-15
wählen. Ich habe ISO8859-15 gewählt.

Wie muss ich alles einstellen, damit ich von Linux, Windows
und FTP Dateinamen mit Sonderzeichen anlegen kann und diese
Sonderzeichen dann auch überall richtig (dh. ein ö sei überall
ein ö und nicht "ö" oder " Â") angezeigt werden?

Danke,

Alexander Skwar
--
Carelessly planned projects take three times longer to complete than expected.
Carefully planned projects take four times longer to complete than expected,
mostly because the planners expect their planning to reduce the time it takes.
--
[hidden email] mailing list

Reply | Threaded
Open this post in threaded view
|

Re: [OT] Dateinamen mit "Sonderzeichen" auf SMB Share anlegen

Hans-Werner Hilse-2
Moin,

On Sun, 06 Nov 2005 10:59:22 +0100
Alexander Skwar <[hidden email]> wrote:

> //HD/share      /HD/TEST        smbfs
> noauto,credentials=/local/conf/hd-credentials,uid=guest,gid=users,fmask=0775,dmask=0775,workgroup=EUROPE,rw,lfs,iocharset=unicode,codepage=cp850 0 0
>
> Danach habe ich /HD/TEST gemounted: "mount /HD/TEST".
>
> Nun kann ich von Linux aus ohne Probleme eine Datei mit einem
> Namen wie "blöder name" anlegen. Greife ich allerdings mit
> Windows XP auf diese Freigabe zu, dann wird der Dateiname als
> "blöder name" angezeigt. Das rührt vermutlich daher, das mein
> Linux System quasi überall UTF-8, also Unicode, verwendet.

Naja, du hast jedenfalls in den mount-Optionen iocharset=unicode drin
(gilt das überhaupt als charset?!?). Versuch's doch mal mit
iocharset=iso8859-15, jedenfalls, wenn deine Terminals noch nicht mit
UTF-8 arbeiten (wenn du nicht bewußt was dran gedreht hast, wird's so
sein).

Wenn du außerdem auf Samba-Server-Seite nicht Codepage 850, sondern
auch iso8859-15 eingestellt hast, solltest du das ebenfalls in den
Mount-Optionen angeben. So weit ich weiß, spielt das bei der Position
des "ö" aber keine Rolle. Was passiert eigentlich, wenn du beide
Optionen ganz weglässt?

> Lege ich von Windows aus eine Datei mit Namen "blöder name"
> an, so zeigt ls mir den Namen als "bl?der name" an - ich
> gehe davon aus, dass das ? kein "richtiges" Fragezeichen
> ist, sondern eine Repräsentierung des Zeichens.

Es ist dann aus Sicht von Linux "kaputtes" UTF-8.

> Ich habe auch schon versucht, die Freigabe mit "cifs"
> als "Dateisystem"typ zu mounten:
>
> //HD/share      /HD/TEST2       cifs
> noauto,credentials=/local/conf/hd-credentials,uid=guest,gid=users,file_mode=0775,dir_mode=0775,domain=EUROPE,rw,setuids,noperm,nomapchars,soft,serverinoi,iocharset=iso8859-15
> 0 0
>
> Nicht wirklich erfolgreich - jetzt kann noch nicht mal mehr
> das gleiche OS die Umlaute sehen :(
>
> [10:24:12 alexander@server:~] $ touch /HD/TEST2/blöder_name
> [10:24:29 alexander@server:~] $ ls -la /HD/TEST2/bl*me
> -rwxrwxr-x  1 guest users 0  6. Nov 10:24 /HD/TEST2/bl ?der_name

Hmmmmm.... auch, wenn du ein anderes Terminal benutzt?

> Wie muss ich alles einstellen, damit ich von Linux, Windows
> und FTP Dateinamen mit Sonderzeichen anlegen kann und diese
> Sonderzeichen dann auch überall richtig (dh. ein ö sei überall
> ein ö und nicht "ö" oder " Â") angezeigt werden?

Hast du in der Kernelkonfiguration den NLS-Support konfiguriert?



Gruß,

-hwh

--
[hidden email] mailing list

Reply | Threaded
Open this post in threaded view
|

Re: [OT] Dateinamen mit "Sonderzeichen" auf SMB Share anlegen

Alexander Skwar-11
Hans-Werner Hilse schrieb:
> Moin,

Mahlzeit! :)

> On Sun, 06 Nov 2005 10:59:22 +0100
> Alexander Skwar <[hidden email]> wrote:
>
>> //HD/share      /HD/TEST        smbfs
>> noauto,credentials=/local/conf/hd-credentials,uid=guest,gid=users,fmask=0775,dmask=0775,workgroup=EUROPE,rw,lfs,iocharset=unicode,codepage=cp850 0 0
>>
>> Danach habe ich /HD/TEST gemounted: "mount /HD/TEST".
>>
>> Nun kann ich von Linux aus ohne Probleme eine Datei mit einem
>> Namen wie "blöder name" anlegen. Greife ich allerdings mit
>> Windows XP auf diese Freigabe zu, dann wird der Dateiname als
>> "blöder name" angezeigt. Das rührt vermutlich daher, das mein
>> Linux System quasi überall UTF-8, also Unicode, verwendet.
>
> Naja, du hast jedenfalls in den mount-Optionen iocharset=unicode drin
> (gilt das überhaupt als charset?!?). Versuch's doch mal mit
> iocharset=iso8859-15,

So?

//HD/share      /HD/TEST        smbfs
noauto,credentials=/local/conf/hd-credentials,uid=guest,gid=users,fmask=0775,dmask=0775,workgroup=EUROPE,rw,lfs,iocharset=iso8859-15,codepage=cp850  0 0

Bringt nichts - Dateien werden in Windows noch immer
"kaputt" angezeigt ("ö" anstelle von "ö").

> jedenfalls, wenn deine Terminals noch nicht mit
> UTF-8 arbeiten

$ echo -n ä | wc -c
2
$ echo -n m | wc -c
1

Daraus folgt, das die Terminals (bzw. KDE Konsole auf
dem Notebook und gnome-terminal auf meinem Desktop)
mit UTF-8 arbeiten.

> Wenn du außerdem auf Samba-Server-Seite nicht Codepage 850, sondern
> auch iso8859-15 eingestellt hast,

Wie oder wo?

Ich habe in der smb.conf auf Server Seite:

[global]
    client code page = 850
    character set = ISO8859-15

> solltest du das ebenfalls in den
> Mount-Optionen angeben. So weit ich weiß, spielt das bei der Position
> des "ö" aber keine Rolle.

Ein "ß" ist übrigens *ERHEBLICH* kaputter:

[14:36:26 alexander@server:~] $ touch /HD/TEST/haß_15

Erzeugt wird dann:

-rwxrwxr-x  1 guest users      0  6. Nov 14:40 HA?00~@F

In Windows angezeigt als "HAÃ00~@F".

> Was passiert eigentlich, wenn du beide
> Optionen ganz weglässt?

//HD/share      /HD/einfach     smbfs   noauto,credentials=/local/conf/hd-credentials,uid=guest,gid=users,dmask=0775 0 0

[14:42:45 alexander@server:~] $ sudo mount /HD/einfach
[14:42:48 alexander@server:~] $ touch /HD/einfach/blöde_einfach
[14:43:04 alexander@server:~] $ ls -la /HD/einfach/bl*ach
-rwxr-xr-x  1 guest users 0  6. Nov 14:43 /HD/einfach/blöde_einfach

Windows: "blöde_einfach".

>> Lege ich von Windows aus eine Datei mit Namen "blöder name"
>> an, so zeigt ls mir den Namen als "bl?der name" an - ich
>> gehe davon aus, dass das ? kein "richtiges" Fragezeichen
>> ist, sondern eine Repräsentierung des Zeichens.
>
> Es ist dann aus Sicht von Linux "kaputtes" UTF-8.

Jup.

>> [10:24:12 alexander@server:~] $ touch /HD/TEST2/blöder_name
>> [10:24:29 alexander@server:~] $ ls -la /HD/TEST2/bl*me
>> -rwxrwxr-x  1 guest users 0  6. Nov 10:24 /HD/TEST2/bl ?der_name
>
> Hmmmmm.... auch, wenn du ein anderes Terminal benutzt?

Ja.

>> Wie muss ich alles einstellen, damit ich von Linux, Windows
>> und FTP Dateinamen mit Sonderzeichen anlegen kann und diese
>> Sonderzeichen dann auch überall richtig (dh. ein ö sei überall
>> ein ö und nicht "ö" oder " Â") angezeigt werden?
>
> Hast du in der Kernelkonfiguration den NLS-Support konfiguriert?

Keine Ahnung. Der Kernel ist nicht von mir, sondern vom Hersteller.
Wie/Wo finde ich denn wohl die .config? Ein /usr/src gibt's nicht.

root@HD:~# uname -a
Linux HD 2.4.20_mipsel_linkstation #88 2005ǯ 2�25� �� 20:17:00 JST mips unknown

Es gibt aber in /lib/modules entsprechend benamste Module, wie
z.B. nls_iso8859-15, /lib/modules/2.4.20_mipsel_linkstation/kernel/fs/nls/nls_cp850.o

Alexander Skwar
--
[hidden email] mailing list

Reply | Threaded
Open this post in threaded view
|

Re: [OT] Dateinamen mit "Sonderzeichen" auf SMB Share anlegen

Hans-Werner Hilse-2
Hallo,

On Sun, 06 Nov 2005 14:52:16 +0100
Alexander Skwar <[hidden email]> wrote:

> > Naja, du hast jedenfalls in den mount-Optionen iocharset=unicode drin
> > (gilt das überhaupt als charset?!?). Versuch's doch mal mit
> > iocharset=iso8859-15,
>
> So?
>
> //HD/share      /HD/TEST        smbfs
> noauto,credentials=/local/conf/hd-credentials,uid=guest,gid=users,fmask=0775,dmask=0775,workgroup=EUROPE,rw,lfs,iocharset=iso8859-15,codepage=cp850  0 0

ja, aber ich revidiere das, da du ja weiter unten einwandfrei beweist...

> $ echo -n ä | wc -c
> 2

...dass du mit UTF-8-Terminals arbeitest. Daher müsste iocharset wohl
eher auf "utf8" gesetzt sein. "unicode" jedenfalls funktioniert, so
weit ich den Kernel interpretiere, nicht.

> Daraus folgt, das die Terminals (bzw. KDE Konsole auf
> dem Notebook und gnome-terminal auf meinem Desktop)
> mit UTF-8 arbeiten.

Jepp.
 

> > Wenn du außerdem auf Samba-Server-Seite nicht Codepage 850, sondern
> > auch iso8859-15 eingestellt hast,
>
> Wie oder wo?
>
> Ich habe in der smb.conf auf Server Seite:
>
> [global]
>     client code page = 850
>     character set = ISO8859-15

komisch, beide Direktiven kennt mein "man smb.conf" nicht... oh, jetzt
hab ichs: Samba 2. Nach der Dokumentation, die ich gerade aufgetrieben
habe, wird nur "character set = ISO8859-1" unterstützt... Die code page
850 ist dann dazu die Entsprechung.

Das wiederum heisst dann, dass dein "cp850" im mount-Befehl richtig ist
(nicht aber "iocharset"!).

> > Was passiert eigentlich, wenn du beide
> > Optionen ganz weglässt?
>
> //HD/share      /HD/einfach     smbfs   noauto,credentials=/local/conf/hd-credentials,uid=guest,gid=users,dmask=0775 0 0
>
> [14:42:45 alexander@server:~] $ sudo mount /HD/einfach
> [14:42:48 alexander@server:~] $ touch /HD/einfach/blöde_einfach
> [14:43:04 alexander@server:~] $ ls -la /HD/einfach/bl*ach
> -rwxr-xr-x  1 guest users 0  6. Nov 14:43 /HD/einfach/blöde_einfach
>
> Windows: "blöde_einfach".

Hm, ja, kein Wunder, er schickt UTF-8 - konvertiert von vorgeblichem
ISO8859-15 auf Codepage 850 - an Samba.

> > Hast du in der Kernelkonfiguration den NLS-Support konfiguriert?
>
> Keine Ahnung. Der Kernel ist nicht von mir, sondern vom Hersteller.
> Wie/Wo finde ich denn wohl die .config? Ein /usr/src gibt's nicht.

Hm? Nee, nicht auf Server-Seite. Da ist's Wurscht, da Samba als Server
im Userspace läuft. Aber clientseitig wird ja vom Kernel gemountet. Da
muss es in deinem Fall vermutlich mindestens nls_cp850 und nls_utf8
sein.

> Es gibt aber in /lib/modules entsprechend benamste Module, wie
> z.B. nls_iso8859-15, /lib/modules/2.4.20_mipsel_linkstation/kernel/fs/nls/nls_cp850.o

Wenn hier tatsächlich der Client/die Workstation und nicht der Samba
Server gemeint ist (mipsel? Eher nicht, oder?), dann bräuchtest du noch
das erwähnte nls_utf8. Und die oben angesprochene Anpassung von
"iocharset".


-hwh

--
[hidden email] mailing list

Reply | Threaded
Open this post in threaded view
|

Re: [OT] Dateinamen mit "Sonderzeichen" auf SMB Share anlegen

Alexander Skwar-11
Hans-Werner Hilse schrieb:

> komisch, beide Direktiven kennt mein "man smb.conf" nicht... oh, jetzt
> hab ichs: Samba 2. Nach der Dokumentation, die ich gerade aufgetrieben
> habe, wird nur "character set = ISO8859-1" unterstützt... Die code page
> 850 ist dann dazu die Entsprechung.

So. Nun habe ich auf dem NAS Dingen NFS installiert. Für das
Samba/SMB Problem hat das aber nicht so wirklich was gebracht...

Nun kann ich zwar von Linux aus schön Umlaute in UTF-8 anlegen,
in Samba werden die aber nicht angezeigt.

Kann Samba 2 vlt. nicht mit UTF-8 umgehen? :(

Ich würde nun gerne Samba 2 so hinbiegen, das eingehene Dateinamen
von cp850 (oder was auch immer...) auf UTF-8 "umgebogen" werden
und vorhandene UTF-8 Dateinamen auf cp850.

Wie geht das wohl?

In der smb.conf manpage von Samba 2.2.8a (siehe z.B.
<http://alexander.skwar.name/~askwar/stuff/smb.conf.5.html#CHARACTERSET>)
finde ich dazu nur "client code page" und "character set".
Passen würde "character set". Welche Werte kann man dem
übergeben? Die, für die es in /usr/share/codepage/
"nftable" Dateien gibt?

Dann wohl kein UTF-8 :(

Oder die, die bei "find /lib/modules/$(uname -r) -name nls*.o"
gefunden werden? Dann wäre "UTF8" eine Möglichkeit, aber
eine per NFS angelegte Datei "blöde_utf8" wird in Windows
als "bl├Âde_utf8" angezeigt. Nicht so wirklich erfolgreich :(

Nochmal die wichtige Frage: Kann Samba mit UTF-8 Dateinamen
umgehen?

Danke,

Alexander Skwar
--
[hidden email] mailing list

Reply | Threaded
Open this post in threaded view
|

Re: [OT] Dateinamen mit "Sonderzeichen" auf SMB Share anlegen

Hans-Werner Hilse-2
Moin,

On Sun, 06 Nov 2005 23:01:47 +0100
Alexander Skwar <[hidden email]> wrote:

> Hans-Werner Hilse schrieb:
>
> > komisch, beide Direktiven kennt mein "man smb.conf" nicht... oh, jetzt
> > hab ichs: Samba 2. Nach der Dokumentation, die ich gerade aufgetrieben
> > habe, wird nur "character set = ISO8859-1" unterstützt... Die code page
> > 850 ist dann dazu die Entsprechung.
>
> So. Nun habe ich auf dem NAS Dingen NFS installiert. Für das
> Samba/SMB Problem hat das aber nicht so wirklich was gebracht...
>
> Nun kann ich zwar von Linux aus schön Umlaute in UTF-8 anlegen,
> in Samba werden die aber nicht angezeigt.

Hm, keine Ahnung, wie das bei NFS läuft mit Charset-Konversionen, aber...

> Kann Samba 2 vlt. nicht mit UTF-8 umgehen? :(

...nein. Kann es nicht, jedenfalls nach der Doku, die ich gefunden habe.
 
> Ich würde nun gerne Samba 2 so hinbiegen, das eingehene Dateinamen
> von cp850 (oder was auch immer...) auf UTF-8 "umgebogen" werden
> und vorhandene UTF-8 Dateinamen auf cp850.

Wieso kann man das wollen? Dann kannst du effektiv eh nur cp850 nutzen...

> In der smb.conf manpage von Samba 2.2.8a (siehe z.B.
> <http://alexander.skwar.name/~askwar/stuff/smb.conf.5.html#CHARACTERSET>)
> finde ich dazu nur "client code page" und "character set".
> Passen würde "character set". Welche Werte kann man dem
> übergeben? Die, für die es in /usr/share/codepage/
> "nftable" Dateien gibt?

keine Ahnung, wozu diese Dateien gut sind. Nicht eher für die Konsole?

> Dann wohl kein UTF-8 :(

Auf dem Client schon, nur nicht auf dem (Samba-)Server.

> Oder die, die bei "find /lib/modules/$(uname -r) -name nls*.o"
> gefunden werden? Dann wäre "UTF8" eine Möglichkeit, aber
> eine per NFS angelegte Datei "blöde_utf8" wird in Windows
> als "bl├Âde_utf8" angezeigt. Nicht so wirklich erfolgreich :(

Nein, denn wie ich geschrieben habe, sind diese Dateien nur für mounts,
also die Client-Seite gut. Samba muss das selbst implementiert haben.
Kannst ja mal die binaries mit "strings" durchforsten, ob da was mit
"utf" drin ist.

> Nochmal die wichtige Frage: Kann Samba mit UTF-8 Dateinamen
> umgehen?

Wichtiger: Samba 2.

Gruß,

-hwh
--
[hidden email] mailing list

Reply | Threaded
Open this post in threaded view
|

Re: [OT] Dateinamen mit "Sonderzeichen" auf SMB Share anlegen

Alexander Skwar-11
Moin!

Hans-Werner Hilse wrote:
> Moin,
>
> On Sun, 06 Nov 2005 23:01:47 +0100
> Alexander Skwar <[hidden email]> wrote:
>
>> Hans-Werner Hilse schrieb:

>> So. Nun habe ich auf dem NAS Dingen NFS installiert. Für das
>> Samba/SMB Problem hat das aber nicht so wirklich was gebracht...
>>
>> Nun kann ich zwar von Linux aus schön Umlaute in UTF-8 anlegen,
>> in Samba werden die aber nicht angezeigt.
>
> Hm, keine Ahnung, wie das bei NFS läuft mit Charset-Konversionen,

Gar nicht - das ist ja gerade das Gute :)

>> Kann Samba 2 vlt. nicht mit UTF-8 umgehen? :(
>
> ...nein. Kann es nicht, jedenfalls nach der Doku, die ich gefunden habe.

Danke für die Bestätigung.

>> Ich würde nun gerne Samba 2 so hinbiegen, das eingehene Dateinamen
>> von cp850 (oder was auch immer...) auf UTF-8 "umgebogen" werden
>> und vorhandene UTF-8 Dateinamen auf cp850.
>
> Wieso kann man das wollen?

Kann Windows mit UTF-8 in Dateinamen umgehen? Da ich vermute,
das dem nicht so ist, wollte ich das.

> Dann kannst du effektiv eh nur cp850 nutzen...

Ja.

>> In der smb.conf manpage von Samba 2.2.8a (siehe z.B.
>> <http://alexander.skwar.name/~askwar/stuff/smb.conf.5.html#CHARACTERSET>)
>> finde ich dazu nur "client code page" und "character set".
>> Passen würde "character set". Welche Werte kann man dem
>> übergeben? Die, für die es in /usr/share/codepage/
>> "nftable" Dateien gibt?
>
> keine Ahnung, wozu diese Dateien gut sind. Nicht eher für die Konsole?

Hm, ja, magst Du recht haben.

>
>> Dann wohl kein UTF-8 :(
>
> Auf dem Client schon, nur nicht auf dem (Samba-)Server.

Was *auf* dem Server abläuft, interessiert mich nicht - mich
interessiert, wie Samba das handelt :)

>> Oder die, die bei "find /lib/modules/$(uname -r) -name nls*.o"
>> gefunden werden? Dann wäre "UTF8" eine Möglichkeit, aber
>> eine per NFS angelegte Datei "blöde_utf8" wird in Windows
>> als "bl├Âde_utf8" angezeigt. Nicht so wirklich erfolgreich :(
>
> Nein, denn wie ich geschrieben habe, sind diese Dateien nur für mounts,
> also die Client-Seite gut. Samba muss das selbst implementiert haben.

Ach, jetzt verstehe ich Dich. Danke.

>> Nochmal die wichtige Frage: Kann Samba mit UTF-8 Dateinamen
>> umgehen?
>
> Wichtiger: Samba 2.

Jup.

Alexander Skwar
--
Men of quality are not afraid of women for equality.

--
[hidden email] mailing list