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.
Antworten:
Nun, SSH funktioniert! Was ist mit ein paar weiteren Testfällen:
Das gleiche Problem besteht?
quelle