Tentando renomear um arquivo via Samba; falha se houver um '2' no nome do arquivo

7

Isto parece uma questão bizarra, espero que alguém possa lançar alguma luz. Eu configurei algumas pastas de samba em alguns servidores do Ubuntu para que os usuários fizessem algum gerenciamento de arquivos. Depois de mover um arquivo para o compartilhamento, o usuário está tentando renomear o arquivo do seu computador com Windows XP pelo samba, mas recebendo o erro "O nome do arquivo que você especificou não é válido ou muito longo. Especifique um nome de arquivo diferente". p>

Eu verifiquei as permissões e mexi com ele do Windows 7 e estou tendo o mesmo problema. Por fim, descobri que posso alterar o nome do arquivo desde que o novo nome não inclua o número '2'. O novo nome do arquivo deve ser '285870_full' e podemos chamá-lo '185870_full' e '385870_full' e qualquer outra coisa que eu possa pensar em tentar, mas '285870_full' fornece o erro sobre "nome de arquivo que você especificou não é válido ou longo "

Eu me conectei ao servidor via SSH e consegui renomear o arquivo dessa forma sem nenhum erro. Agora, através do samba, eu posso ver que o arquivo se chama '285870_full' e, se eu tentar adicionar outro '2', ele apresenta o mesmo erro, mas, do contrário, posso renomeá-lo normalmente.

Eu tentei com outro pequeno arquivo de texto aleatório e tive o mesmo problema - ele não me deixará renomear para qualquer coisa com um '2' no novo nome, mas '134567890' funciona bem. Alguma idéia?

Atualização: eu configurei o nível de log para 3 e aqui está a parte relevante do log de um teste;

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

Eu vejo renomear com um '2' que dá NT_STATUS_OBJECT_NAME_INVALID?

Aqui está outro recorte de log enquanto ele renomeou com sucesso para algo sem um '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)

Então, pergunto-me por que um '2' fornece NT_STATUS_OBJECT_NAME_INVALID?

    
por user16081-JoeT 22.07.2013 / 23:51

1 resposta

1

Bem, o SSH funciona !, e mais alguns casos de teste:

  • e as pastas com 2 em seu nome?
  • que tal "criar" em vez de "renomear"? (copiando e colando um novo arquivo com 2 em seu nome)
  • que tal usar o cliente SMB da sua máquina servidor (por exemplo, SMB: //192.168.0.1)

O mesmo problema existe?

    
por 23.07.2013 / 09:06

Tags