staging.inyokaproject.org

Unerlaubte Zeichen in Dateinamen (in SMB Freigaben)

Status: Gelöst | Ubuntu-Version: Ubuntu MATE 24.04 (Noble Numbat)
Antworten |

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6532

Ich habe da eine Test Datei mit folgendem Namen:

z_?_=_&_#_--:_[_]_@_!_$_%_'_(_)_*_+_,_;_"_.mp4

Diese wird mir in Caja und Thunar so aufgelistet:

smb://samurai/prog/img/täst/ZNQY1F~2.MP4

Hat jemand eine Ahnung, nach welchen Regeln der neue Name erzeugt wird?

p.s. Die Datei diente ursprünglich dazu URL-Codierungen zu testen:

z_%3F_=_&_%23_--:_%5B_%5D_@_!_$_%25_'_(_)_*_+_,_%3B_"_.mp4

Kreuzschnabel

Anmeldungsdatum:
12. Dezember 2011

Beiträge: 1768

Den Doppelpunkt mag SMB bei mir nicht. Einklich sollte es gehen, sagt man.

Hat jemand eine Ahnung, nach welchen Regeln der neue Name erzeugt wird?

z.B. http://lug.krems.cc/docu/samba/ch05_04.html

--ks

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Dakuan schrieb:

[…] nach welchen Regeln der neue Name erzeugt wird

Die zulässigen Zeichen in Dateinamen sind abhängig vom Dateisystem, welches den Namen speichert. Bei von Microsoft benutzen Dateisystemen wird zusätzlich zum langen Dateinamen immer automatisch ein 8.3-Dateiname bereitgestellt, den nach den von Microsoft veröffentlichen Regeln aus dem langen Dateinamen abgeleitet wird. Siehe: Windows-Partitionen unter Linux

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6532

@Kreuzschnabel Danke für den Link. Klingt ziemlich "verbstelt". Und der Doppelpunkt gehört nicht zum Dateinamen sondern zum Schema.

@kB Ein Windows Dateisystem ist hier nicht (direkt) beteiligt. Auf beiden Rechnern läuft Linux mit ext4. Die Freigabe ist auf Ubuntu und Arch greift darauf zu. Desktop ist auf beiden Mate.

Ich werde mal sehen, ob ich die ganzen wenn und abers nachvollziehen kann.

Kreuzschnabel

Anmeldungsdatum:
12. Dezember 2011

Beiträge: 1768

Dakuan schrieb:

der Doppelpunkt gehört nicht zum Dateinamen sondern zum Schema.

Ich spreche von diesem hier:

z_?_=_&_#_--:_[_]_@_!_$_%_'_(_)_*_+_,_;_"_.mp4

Der ist nach deiner ersten Aussage Teil des Dateinamens. Und so was läuft bei mir auch nicht schadlos über SMB, etwa in Dateinamen wie „Mission:Impossible-01.mkv“. Deshalb will man in einem reinen Linux-Kontext auch kein SMB benutzen, dafür gibt’s NFS (der hat das beschriebene Problem auch nicht).

--ks

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

Dakuan schrieb:

@kB Ein Windows Dateisystem ist hier nicht (direkt) beteiligt. Auf beiden Rechnern läuft Linux mit ext4. Die Freigabe ist auf Ubuntu und Arch greift darauf zu. Desktop ist auf beiden Mate.

Das Problem entsteht, wenn man die Unix-Extensions für SAMBA nicht angeschaltet hat, dann ist standardmäßig das Name-Mangling für Windows-Clients aktiv. Wenn man eh nur Linux hat, könnte man z.B. NFS oder SSHFS nutzen.

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6532

Oh, den zweiten Doppelpunkt hatte ich übersehen. Aber den lässt

g_filename_to_uri()

auch durch.

Das Problem entsteht, wenn man die Unix-Extensions für SAMBA nicht angeschaltet hat, ...

Danke für den Tipp. Dann muss ich wohl auf der Arch Seite tätig werden (da klemmt sowiso noch einiges). Aber das würde erklären, warum mir das bisher nicht aufgefallen ist (Ubuntu ←→ NAS).

... könnte man z.B. NFS oder SSHFS nutzen.

Da muss ich erst mal sehen ob mein NAS SSHFS kann.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

Dakuan schrieb:

Da muss ich erst mal sehen ob mein NAS SSHFS kann.

Das muss eigentlich nur SSH (mit aktiver SFTP-Funktionalität) anbieten, damit Clients darauf zugreifen können - ein FUSE-Modul kümmert sich dann darum dem System ein Dateisystem vorzugaukeln: FUSE/sshfs

Kreuzschnabel

Anmeldungsdatum:
12. Dezember 2011

Beiträge: 1768

seahawk1986 schrieb:

wenn man die Unix-Extensions für SAMBA nicht angeschaltet hat, dann ist standardmäßig das Name-Mangling für Windows-Clients aktiv.

Die Unix-Extensions haben damit nicht viel zu tun. Du kannst Name-Mangling in der smb.conf abschalten

[global] 
name mangling = no

wirst dann aber Dateien mit Doppelpunkt im Dateinamen überhaupt nicht mehr übertragen können. Per catia können sie remappt werden, aus : wird dann z.B. ÷.

Aber wie schon wiederholt gesagt, in reinen Linux-Kontexten ist SMB eh eine Krücke, die man nicht braucht. NFS und wohl auch die anderen genannten Lösungen übertragen Doppelpunkte in Dateinamen klaglos, weil sie nicht mit URIs arbeiten, sondern mit Pfaden auf Mountpunkten.

--ks

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6532

Du kannst Name-Mangling in der smb.conf abschalten ...

Da möchte ich lieber nichts ändern. Ich habe ja auch noch einen (selten gebrauchten) Windows PC.

SSHFS kann mein NAS, erlaubt es aber nur für den Benutzer "admin".

Bei NFS bin ich unsicher wegen der unterschiedlichen Versionen. Ich glaube mal gelesen zu haben, dass alle die gleiche Version verwenden müssen. Außerdem bin ich damit früher mal mit SUSE 8.x auf die Nase gefallen.

Mein eigenes Programm spricht kein SMB. Es verwendet HTTP und als Gegenstelle einen speziellen Server. Die SMB Verbindung verwende ich da nur zur Kontrolle für meine Experimente, wodurch mir das aufgefallen ist. Für Backups verwende ich rsync.

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6532

Ich hatte bisher nicht beachtet, dass auf dem Ubuntu PC das NAS über die fstab eingebunden wird. Deshalb habe ich mit dem NAS noch einmal getestet.

Bei Einbindung über Dateimanager bekomme ich immer die Fehlermeldung "ungültiges Argument".

Bei Einbindung über fstab wird anstandslos kopiert. Allerdings werden einige Zeichen abgeändert. Bisher dachte ich das läge am Zeichensatz. Die Zeichen werden als Quadrat "mit unscharfem Inhalt" dargestellt. Es sind Unicode Zeichen in der Form F0xx.

  • ? = F025 

  • : = F022 

u.s.w.

Antworten |