Назад | Перейти на главную страницу

Почему пользователь Win7 не может перемещать файлы, вместо этого он просто копирует их в общий ресурс Samba?

Я использую сервер CentOS с Samba. К локальной сети подключен один ПК с Windows 7, остальные - Mac и Linux. На компьютерах Mac этой проблемы нет, но на ПК с Windows, когда пользователь пытается переместить файл в том же общем ресурсе из одной папки в другую, он не «перемещает» их. Он делает копию файла в место назначения и не удаляет исходный файл.

Это происходит не все время, но, похоже, это происходит чаще, когда файл создается на одном из компьютеров Mac (на всех работает El Capitan). Проблема не возникает, когда пользователь ПК перемещает созданный им файл.

Что я могу попробовать решить эту проблему?

Может быть, это проблема с файлом smb.conf? Как его настроить так, чтобы все пользователи файлового сервера имели доступ для чтения и записи ко всем файлам в общей папке?

Меня очень озадачивает то, что это не происходит постоянно, даже если у файлов один и тот же владелец / группа и права доступа.

Что мне нужно сделать в Windows 7, чтобы убедиться, что клиент в данный момент работает?

Выпуск CentOS 6.7 (финальная) Samba версии 3.6.23-24.el6_7

Общий ресурс имеет разрешения 0755 и принадлежит группе smbuser и smbuser.

Папка в общей папке имеет разрешение 0775, тот же владелец / группа, что и выше.

Фактический файл имеет разрешение 0644 и принадлежит корню группы. Однако в файле smb.conf все принудительно рутируется (я считаю):

[global]
        workgroup = workgroup
        netbios name = SERVER
        browseable = no
        available = no
        wins support = yes
        local master = yes

[SERVER]
        comment = File Server
        browseable = yes
        valid users = smbuser,nobody,edward
        force user = root
        writeable = yes
        path = /home/share
        available = yes

Каждый (на Mac) имеет доступ через пользователя smbuser с одним и тем же паролем.

ПК с Windows 7, в котором я не совсем уверен, так как я так давно не устанавливал его, я думал, что он тоже использует smbuser. Но теперь я не могу найти, где эта информация находится на ПК, чтобы проверить это, или стереть ее и повторно ввести. Но если все будут «force user = root», разве это не значит, что все они будут действовать как «root»?

Я провел тест, в котором компьютер создал папку и файл в общей папке, и они принадлежат пользователю root и той же группе.

Если у меня нет этой настройки, пожалуйста, дайте мне знать. Нам нужно, чтобы все рабочие станции могли читать / писать одни и те же файлы. Нет причин, по которым он принадлежит конкретному пользователю.

Пара способов устранить проблемы с поведением Samba, которое вы описываете.

  1. Включите аудит Samba. Запись в блоге по Samba - журнал аудита файлов с full_audit
  2. Использовать strace для отслеживания системных вызовов от пользователя smbd обработать. Глава 14 руководства разработчика Samba описывает Отслеживание системных вызовов samba
  3. утилита самбы smbstatus покажет текущие соединения samba и oplocks.