Versuch, eine Datei über Samba umzubenennen; schlägt fehl, wenn der Dateiname eine '2' enthält


7

Dies scheint ein bizarres Problem zu sein, ich hoffe, jemand könnte etwas Licht ins Dunkel bringen. Ich habe einige Samba-Ordner auf einigen Ubuntu-Servern eingerichtet, damit die Benutzer die Datei verwalten können. Nach dem Verschieben einer Datei in die Freigabe versucht der Benutzer, die Datei von seinem Windows XP-Computer über Samba umzubenennen, erhält jedoch die Fehlermeldung "Der von Ihnen angegebene Dateiname ist ungültig oder zu lang. Geben Sie einen anderen Dateinamen an."

Ich habe die Berechtigungen überprüft und unter Windows 7 damit herumgespielt und habe das gleiche Problem. Letztendlich habe ich festgestellt, dass ich den Dateinamen ändern kann, solange der neue Name nicht die Nummer '2' enthält. Der neue Name der Datei sollte '285870_full' sein und wir können ihn '185870_full' und '385870_full' nennen und alles andere, was ich versuchen kann, aber '285870_full' gibt den Fehler über "Dateiname, den Sie angegeben haben, ist ungültig oder zu lang ""

Ich habe mich über SSH mit dem Server verbunden und konnte die Datei auf diese Weise fehlerfrei umbenennen. Jetzt kann ich durch Samba sehen, dass die Datei '285870_full' heißt und wenn ich versuche, eine weitere '2' hinzuzufügen, gibt es den gleichen Fehler, aber ansonsten kann ich sie normal umbenennen.

Ich habe es mit einer anderen zufälligen kleinen Textdatei versucht und habe das gleiche Problem - ich kann es nicht in etwas mit einer '2' im neuen Namen umbenennen, aber '134567890' funktioniert einwandfrei. Irgendwelche Ideen?

Update: Ich habe die Protokollstufe auf 3 gesetzt und hier ist der relevante Teil des Protokolls aus einem Test.

reply_mv : pending/31345678901affiliate_pixel33.txt -> pending/31345678901affiliate_p22.txt
[2013/07/22 21:58:39, 3] smbd/reply.c:5981(rename_internals) rename_internals: case_sensitive = 0, case_preserve = 1, short case preserve = 1, directory = pending/31345678901affiliate_pixel33.txt, newname = pending/31345678901affiliate_p22.txt, last_component_dest = 31345678901affiliate_p22.txt
[2013/07/22 21:58:39, 3] smbd/dosmode.c:149(unix_mode) unix_mode(pending/31345678901affiliate_pixel33.txt) returning 0744
[2013/07/22 21:58:39, 2] smbd/open.c:580(open_file) root opened file pending/31345678901affiliate_pixel33.txt read=No write=No (numopen=1)
[2013/07/22 21:58:39, 2] smbd/close.c:612(close_normal_file) root closed file pending/31345678901affiliate_pixel33.txt (numopen=0) NT_STATUS_OK
[2013/07/22 21:58:39, 3] smbd/reply.c:6041(rename_internals) rename_internals: Error NT_STATUS_OBJECT_NAME_INVALID rename pending/31345678901affiliate_pixel33.txt -> pending/31345678901affiliate_p22.txt
[2013/07/22 21:58:39, 3] smbd/error.c:60(error_packet_set) error packet at smbd/reply.c(6273) cmd=7 (SMBmv) NT_STATUS_OBJECT_NAME_INVALID
[2013/07/22 21:58:39, 3] smbd/process.c:1459(process_smb) Transaction 14 of length 162 (0 toread)
[2013/07/22 21:58:39, 3] smbd/process.c:1273(switch_message) switch message SMBtrans2 (pid 11644) conn 0x7fad01371210

Ich sehe, dass das Umbenennen mit einer '2' NT_STATUS_OBJECT_NAME_INVALID ergibt.

Hier ist ein weiterer Protokollausschnitt, der erfolgreich in etwas ohne '2' umbenannt wurde.

[2013/07/22 22:05:33, 3] smbd/reply.c:6263(reply_mv) reply_mv : pending/31345678901affiliate_pixel33.txt -> pending/31345678901affiliate_44.txt
[2013/07/22 22:05:33, 3] smbd/reply.c:5981(rename_internals) rename_internals: case_sensitive = 0, case_preserve = 1, short case preserve = 1, directory = pending/31345678901affiliate_pixel33.txt, newname = pending/31345678901affiliate_44.txt, last_component_dest = 31345678901affiliate_44.txt
[2013/07/22 22:05:33, 3] smbd/dosmode.c:149(unix_mode) unix_mode(pending/31345678901affiliate_pixel33.txt) returning 0744
[2013/07/22 22:05:33, 2] smbd/open.c:580(open_file) root opened file pending/31345678901affiliate_pixel33.txt read=No write=No (numopen=1)
[2013/07/22 22:05:33, 3] smbd/reply.c:5816(rename_internals_fsp) rename_internals_fsp: succeeded doing rename on pending/31345678901affiliate_pixel33.txt -> pending/31345678901affiliate_44.txt
[2013/07/22 22:05:33, 2] smbd/close.c:612(close_normal_file) root closed file pending/31345678901affiliate_44.txt (numopen=0) NT_STATUS_OK
[2013/07/22 22:05:33, 3] smbd/reply.c:6041(rename_internals) rename_internals: Error NT_STATUS_OK rename pending/31345678901affiliate_pixel33.txt -> pending/31345678901affiliate_44.txt
[2013/07/22 22:05:33, 3] smbd/process.c:1459(process_smb) Transaction 72 of length 158 (0 toread)

Ich frage mich also, warum eine '2' NT_STATUS_OBJECT_NAME_INVALID ergibt.


3
Erstens, Kurbel, die sich bei Samba anmeldet und sieht, was zu der Zeit steht.
MadHatter

Nun, ich habe keine Ahnung, warum das passiert ist, aber ich habe beschlossen, den Server neu zu starten, und jetzt tritt das Problem nicht mehr auf! Danke für Ihre Hilfe.
user16081-JoeT

Antworten:


1

Nun, SSH funktioniert! Was ist mit ein paar weiteren Testfällen:

  • Was ist mit Ordnern mit 2 im Namen?
  • Was ist mit "Erstellen" statt "Umbenennen"? (Kopieren und Einfügen einer neuen Datei mit 2 im Namen)
  • Was ist mit der Verwendung des SMB-Clients Ihres Server-Computers (z. B.: SMB: //192.168.0.1)?

Das gleiche Problem besteht?


Das gleiche Problem mit den ersten beiden, es funktioniert nicht mit der Nummer '2'
user16081-JoeT

Starten Sie den Server neu und jetzt tritt das Problem nicht mehr auf! Danke für Ihre Hilfe.
user16081-JoeT
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.