Добрый день,
есть несколько сетевых папок на сервере Debian с samba 3.6.6Внезапно MS Excel при открытии файлов начал выдавать сообщение "файл открыт пользователем <другой пользователь*>"
*если файл действительно открыт другим пользователем, то отображено имя пользователя - иначе просто "другой пользователь"
При открытии в режиме "открыть и уведомить о доступности" файл сообщает о доступности через несколько секунд.
smbstatus не отображает блокировок этих файлов.
В логах при этом происходит следующее:
Feb 10 15:49:32 file_server smbd[10098]: user_name|user_ip|user_NB_name|share_name|pwrite|ok|path/to/file/~$file_name.xlsx
Feb 10 15:49:32 file_server smbd[10098]: user_name|user_ip|user_NB_name|share_name|unlink|ok|path/to/file/~$file_name.xlsxФайлы блокируются совершенно случайным образом (если у файла случилась такая блокировка - сама не пропадает).
Рестарт самбы и пользовательских машин не помогает.Буду пытаться выудить ошибку full_audit'ом на всё, но может кто-то уже сталкивался?
Is it help?
????
veto oplock files = $file_name.xlsx
????
> Is it help?
> ????
> veto oplock files = $file_name.xlsx
> ????Thanks for Your answer.
I'll try it but I think it would not help.
Because I've disabled all oplocks for test and still got same situation.Really weird situation. Looks like MS Excel trying create lock file (~$f_name.xlsx), got timeout (samba is little bit overloaded on that server) when trying find this file and decided that main file is opened by another user.
Отключение oplock files на временные файлы excel не помогает.
Складывается впечатление что:
0. Excel проверяет наличие временного файла.
1. Excel открывает файл и одновременно пытается создать временный ~$f_name.xlsx
2. Пытается найти временный файл и работать с ним.
3. Временного файла не видно (самба немного перегружена) и excel решает что файл кем-то заблокирован
4. Через несколько секунд excel пробует ещё раз и всё хорошо.Звучит как идиотизм но другого объяснения пока не вижу.
Не совсем понял, вы вообще отключили oplocks = no,
или только на временные файлы?Да, перегружать надо всех и сразу.
Если есть возможноть, перенесите "share" на Windows (msdfs for help).
> Не совсем понял, вы вообще отключили oplocks = no,
> или только на временные файлы?
> Да, перегружать надо всех и сразу.
> Если есть возможноть, перенесите "share" на Windows (msdfs for help).Для тестирования сделал на пару минут oplocks = no.
Перезапустил самбу + и пользователя у которого были проблемы - не помогло.
msdfs попробовать получится не раньше субботы.
Больше всего раздражает отсутствие возможности воспроизвести ошибку.
Пока работает, попробую найти в почтах "оригиналы" тех файлов и провести эксперимент - после первого такого открытия и получения нормального доступа все пользователи спокойно работают с этими же файлами без проблем.
blocking locks = no
Судя по описанию, может, подойти.
Все, больше предположений нет.
strict locking = no - Так уж, докучи.
Успехов.
strict locking = yes
Sorry.
> blocking locks = no
> Судя по описанию, может, подойти.
> Все, больше предположений нет.
> strict locking = no - Так уж, докучи.
> Успехов.strict же кажется по умолчанию выключен, а blocking по умолчанию и даруют свободу приложениям работать с блокировками так как им нравится?
Впрочем попробую и отпишусь.
не совсем по теме, но похожая комбинация Samba vs Windows 7 vs Office
сервер самбы и клиенты входят в один домен, так же есть клиенты вне домена.
на определенных каталогах включены через acl права rwx для всех.
Если в таком каталоге клиент вне домена создаст файл, то пользователь домена не может его отредактировать.
Включить на весь сетевой каталог маску на файлы нельзя, тк есть куча подкаталогов, в которых наследуются разные права доступа.
В гугле искал, но все время попадаются стандартные статьи и советы, непонятно по каким ключевым словам искать.вот конфиг http://pastebin.com/q1XHtb70
>[оверквотинг удален]
> сервер самбы и клиенты входят в один домен, так же есть клиенты
> вне домена.
> на определенных каталогах включены через acl права rwx для всех.
> Если в таком каталоге клиент вне домена создаст файл, то пользователь домена
> не может его отредактировать.
> Включить на весь сетевой каталог маску на файлы нельзя, тк есть куча
> подкаталогов, в которых наследуются разные права доступа.
> В гугле искал, но все время попадаются стандартные статьи и советы, непонятно
> по каким ключевым словам искать.
> вот конфиг http://pastebin.com/q1XHtb70Стоит попробовать inherit owner = yes
И посмотреть с какими атрибутами создается файл НЕ_ДОМЕННЫМ пользователем при force unknown acl user = yes (аудиту дописать логирование acl)
каталог и файл создаются не_доменным пользователем, нужно чтобы доменный пользователь мог изменить полученный файл
=======конфиг==========
inherit owner = YES
#force unknown acl user = yes
=======результат=======
getfacl 1
# file: 1
# owner: root
# group: SRV\134none
user::rwx
group::rwx
group:пользователи\040домена:rwx
group:оит:rwx
group:администраторы\040домена:rwx
mask::rwx
other::rwx
default:user::rwx
default:group::rwx
default:group:пользователи\040домена:rwx
default:group:оит:rwx
default:group:администраторы\040домена:rwx
default:mask::rwx
default:other::rwxgetfacl 1/тестовый2.xls
# file: 1/тестовый2.xls
# owner: root
# group: MEDIALOG-SRV\134none
user::rwx
group::rwx #effective:r--
group:пользователи\040домена:r#effective:r--
group:оит:rwx #effective:r--
group:администраторы\040домена:r#effective:r--
mask::r--
other::r--
=======конфиг==========
#inherit owner = YES
force unknown acl user = yes
=======результат=======
getfacl 2
# file: 2
# owner: nobody
# group: SRV\134none
user::rwx
group::rwx
group:пользователи\040домена:rwx
group:оит:rwx
group:администраторы\040домена:rwx
mask::rwx
other::rwx
default:user::rwx
default:group::rwx
default:group:пользователи\040домена:rwx
default:group:оит:rwx
default:group:администраторы\040домена:rwx
default:mask::rwx
default:other::rwxgetfacl 2/тестовый2.xls
# file: 2/тестовый2.xls
# owner: nobody
# group: MEDIALOG-SRV\134none
user::rwx
group::rwx
group:пользователи\040домена:rwx
group:оит:rwx
group:администраторы\040домена:rwx
mask::rwx
other::r--
=======конфиг==========
inherit owner = YES
force unknown acl user = yes
=======результат=======
getfacl 3/
# file: 3/
# owner: root
# group: SRV\134none
user::rwx
group::rwx
group:пользователи\040домена:rwx
group:оит:rwx
group:администраторы\040домена:rwx
mask::rwx
other::rwx
default:user::rwx
default:group::rwx
default:group:пользователи\040домена:rwx
default:group:оит:rwx
default:group:администраторы\040домена:rwx
default:mask::rwx
default:other::rwxgetfacl 3/тестовый.xls
# file: 3/тестовый.xls
# owner: root
# group: SRV\134none
user::rwx
group::rwx #effective:r--
group:пользователи\040домена:r#effective:r--
group:оит:rwx #effective:r--
group:администраторы\040домена:r#effective:r--
mask::r--
other::r--
=======конфиг==========
#inherit owner = YES
#force unknown acl user = yes
=======результат=======
getfacl 4/
# file: 4/
# owner: nobody
# group: SRV\134none
user::rwx
group::rwx
group:пользователи\040домена:rwx
group:оит:rwx
group:администраторы\040домена:rwx
mask::rwx
other::rwx
default:user::rwx
default:group::rwx
default:group:пользователи\040домена:rwx
default:group:оит:rwx
default:group:администраторы\040домена:rwx
default:mask::rwx
default:other::rwxgetfacl 4/тестовый.xls
# file: 4/тестовый.xls
# owner: nobody
# group: SRV\134none
user::rwx
group::rwx
group:пользователи\040домена:rwx
group:оит:rwx
group:администраторы\040домена:rwx
mask::rwx
other::r--
===========================
я уже окончательно запутался... теперь как будто все работает
редактирую доменным - нормально
потом редактирую гостем - нормально
снова доменным и опять работает
Excel 2003
>[оверквотинг удален]
> group:оит:rwx
> group:администраторы\040домена:rwx
> mask::rwx
> other::r--
> ===========================
> я уже окончательно запутался... теперь как будто все работает
> редактирую доменным - нормально
> потом редактирую гостем - нормально
> снова доменным и опять работает
> Excel 2003Я правильно понял, что в итоге заработало с вариантом force unknown acl user = yes (как и было в конфиге) и с вариантом вообще без него?
> Я правильно понял, что в итоге заработало с вариантом force unknown acl
> user = yes (как и было в конфиге) и с вариантом
> вообще без него?вроде как да, но есть проблема в другом месте с таким конфигом
в каталоге пользователь домена редактирует файл, и у файла слетают праваgetfacl КМ-6/
# file: КМ-6/
# owner: root
# group: пользователи\040домена
user::rwx
group::r--
group:пользователи\040бухгалтерии:rwx
group:оит:rwx
group:администраторы\040домена:rwx
group:бухгалтерия:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:пользователи\040домена:r--
default:group:пользователи\040бухгалтерии:rwx
default:group:оит:rwx
default:group:администраторы\040домена:rwx
default:group:бухгалтерия:rwx
default:mask::rwx
default:other::r-xgetfacl КМ-6/КМ-6-1_ФЕВРАЛЬ-2014г..xls
# file: КМ-6/КМ-6-1_ФЕВРАЛЬ-2014г..xls
# owner: sobolevaln
# group: пользователи\040домена
user::rwx
group::r--
group:пользователи\040бухгалтерии:r--
group:оит:r--
group:администраторы\040домена:r--
group:бухгалтерия:r--
mask::rwx
other::r--getfacl КМ-6/test.xls
# file: КМ-6/test.xls
# owner: novoselovaa
# group: пользователи\040домена
*** glibc detected *** getfacl: realloc(): invalid next size: 0x00000000012eaed0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x76d76)[0x7fc9554a0d76]
/lib/x86_64-linux-gnu/libc.so.6(+0x7c94c)[0x7fc9554a694c]
/lib/x86_64-linux-gnu/libc.so.6(realloc+0xf0)[0x7fc9554a6c60]
/lib/x86_64-linux-gnu/libacl.so.1(+0x430c)[0x7fc9559bd30c]
getfacl[0x4028cf]
getfacl[0x403243]
getfacl(walk_tree+0x8c)[0x40378c]
getfacl[0x401c06]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd)[0x7fc955448ead]
getfacl[0x401d55]oh sh...