Это кажется странным вопросом, надеюсь, кто-нибудь прольет свет. Я установил несколько папок samba на нескольких серверах ubuntu, чтобы пользователи могли управлять файлами. После перемещения файла в общую папку пользователь пытается переименовать файл со своего компьютера с Windows XP с помощью samba, но получает сообщение об ошибке «Указанное вами имя файла недействительно или слишком длинное. Укажите другое имя файла».
Я проверил разрешения и возился с ним из Windows 7, и у меня такая же проблема. В конце концов я обнаружил, что могу изменить имя файла, если в новом имени не будет числа «2». Новое имя файла должно быть «285870_full», и мы можем назвать его «185870_full» и «385870_full» и все, что я могу придумать, чтобы попробовать, но «285870_full» выдает ошибку о том, что «имя файла, которое вы указали, недействительно или слишком длинное. "
Я подключился к серверу через SSH и смог без ошибок переименовать файл. Теперь через самбу я вижу, что файл называется «285870_full», и если я попытаюсь добавить еще «2», он выдаст ту же ошибку, но в противном случае я могу переименовать его как обычно.
Я попытался использовать другой случайный небольшой текстовый файл, и у меня возникла та же проблема - он не позволяет мне переименовать его во что-нибудь с «2» в новом имени, но «134567890» работает нормально. Любые идеи?
Обновление: я установил уровень журнала на 3, и вот соответствующая часть журнала из теста;
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
Я вижу, что переименование с "2" дает NT_STATUS_OBJECT_NAME_INVALID?
Вот еще один фрагмент журнала, который успешно переименован во что-то без "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)
Итак, мне интересно, почему «2» дает NT_STATUS_OBJECT_NAME_INVALID?
Что ж, SSH работает !, как насчет еще парочки тестов:
Такая же проблема существует?