Ce problème semble bizarre, j'espère que quelqu'un pourra m'éclairer. J'ai mis en place quelques dossiers samba sur quelques serveurs ubuntu pour que les utilisateurs puissent faire de la gestion de fichiers. Après avoir déplacé un fichier dans le partage, l'utilisateur essaie de renommer le fichier depuis son ordinateur Windows XP via samba, mais il obtient l'erreur "Le nom de fichier que vous avez spécifié n'est pas valide ou trop long. Spécifiez un nom de fichier différent."
J'ai vérifié les permissions et j'ai fait des manipulations depuis Windows 7 et j'ai le même problème. Finalement, j'ai découvert que je peux changer le nom du fichier tant que le nouveau nom ne contient pas le chiffre '2'. Le nouveau nom du fichier devrait être '285870_full' et nous pouvons le nommer '185870_full' et '385870_full' et tout ce que je peux imaginer, mais '285870_full' donne l'erreur suivante : "le nom de fichier que vous avez spécifié n'est pas valide ou trop long".
Je me suis connecté au serveur via SSH et j'ai pu renommer le fichier de cette façon sans aucune erreur. Maintenant, par le biais de samba, je peux voir que le fichier est nommé '285870_full' et si j'essaie d'ajouter un autre '2', cela donne la même erreur, mais sinon je peux le renommer normalement.
J'ai essayé avec un autre petit fichier texte aléatoire et j'ai eu le même problème : il ne me laisse pas le renommer en quelque chose avec un '2' dans le nouveau nom, mais '134567890' fonctionne bien. Avez-vous une idée ?
Mise à jour : j'ai réglé le niveau du journal sur 3 et voici la partie pertinente du journal d'un 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
Je vois que le renommage avec un '2' donne NT_STATUS_OBJECT_NAME_INVALID ?
Voici un autre extrait de journal alors que le nom a été renommé avec succès en quelque chose sans '2'.
[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)
Je me demande donc pourquoi un '2' donne NT_STATUS_OBJECT_NAME_INVALID ?