Samba client linux монтирование

Содержание
  1. Монтирование SMB/Samba
  2. Обнаружение SMB-шар
  3. Монтирование SMB
  4. Аутентификация на SMB-шаре
  5. Монтирование SMB-ресурсов через fstab
  6. Как в Linux монтировать шару CIFS
  7. Подготовка
  8. Установка пакетов
  9. Сетевые порты
  10. Синтаксис
  11. Ручное монтирование
  12. Автоматическое монтирование CIFS через fstab
  13. Примеры использования опций
  14. Версии SMB
  15. Монтирование от гостевой учетной записи
  16. Права на примонтированные каталоги
  17. Samba (Русский)
  18. Contents
  19. Сервер
  20. Установка
  21. Включение и запуск служб
  22. Настройка межсетевого экрана
  23. Использование
  24. Управление пользователями
  25. Создание общего ресурса для анонимных пользователей
  26. Включение следования по символическим ссылкам
  27. Расширенная конфигурация
  28. Создание ресурсов общего доступа от имени обычного пользователя
  29. Установка и форсирование прав доступа
  30. Ограничение версии протокола для повышения безопасности
  31. Использование шифрования SMB
  32. Отключение общего доступа к принтерам
  33. Запрет определённых расширений файлов в общем ресурсе Samba
  34. Увеличение пропускной способности
  35. Включение доступа для старых клиентов или устройств
  36. Включение поиска Spotlight
  37. Клиент
  38. Просмотр публичных ресурсов для общего доступа
  39. Имена хостов NetBIOS/WINS
  40. Отключение поддержки NetBIOS/WINS
  41. Ручное монтирование
  42. Хранение пароля от общих ресурсов
  43. Автоматическое монтирование
  44. С использованием NetworkManager и GIO/gvfs
  45. С помощью записи в fstab
  46. С помощью юнита systemd
  47. smbnetfs
  48. autofs
  49. Настройка файлового менеджера
  50. GNOME Files, Nemo, Caja, Thunar и PCManFM
  51. Другие графические окружения
  52. Советы и рекомендации
  53. Обнаружение общих сетевых ресурсов
  54. Удалённое управление компьютером Windows
  55. Решение проблем
  56. Не удаётся запустить Samba SMB/CIFS сервер
  57. Проблемы с разрешениями на SELinux
  58. Проблемы с разрешениями на AppArmor
  59. No dialect specified on mount
  60. Клиенты Windows продолжают запрашивать пароль, даже если общие ресурсы Samba созданы с правами гостя
  61. Проблемы подключения к Windows 7 — mount error(12): cannot allocate memory
  62. Проблемы подключения к Windows 10 1709 и новее — «Windows cannot access» 0x80004005
  63. Ошибка: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
  64. Не удается предоставить общий доступ к папке
  65. «Просмотр» сети выдает ошибку «Не удалось получить список ресурсов с сервера» (Failed to retrieve share list from server)
  66. protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
  67. Подключение к серверу завершилось неудачей: (Error NT_STATUS_UNSUCCESSFUL)
  68. Подключение к серверу завершилось неудачей: (Error NT_STATUS_CONNECTION_REFUSED)
  69. Protocol negotiation failed: NT_STATUS_CONNECTION_RESET
  70. Правильный пароль не подходит (ошибка 1326)
  71. Сопоставление зарезервированных символов Windows
  72. Папка, к которой открыт доступ через графический интерфейс, недоступна для гостей
  73. Проверьте правильность конфигурации samba
  74. Проверьте правильность создания общей папки
  75. Проверьте доступ к папке от имени гостя
  76. Mount error: Host is down
  77. Software caused connection abort
  78. Ошибка аутентификации
  79. Windows 1709 и новее не видит сервер samba при просмотре сети
  80. Файлы из IOS больше не могут копироваться в общий ресурс Samba в Arch Linux, начиная с IOS 14.5

Монтирование SMB/Samba

Чтобы обеспечить наилучшую совместимость для обмена файлами между различными ОС, Samba является распространенным решением. В Linux вы можете настроить сервер Samba для предоставления доступа клиентам, использующим протоколы Server Message Block (SMB) или Common Internet File System (CIFS) для доступа к этим общим ресурсам. Вы также можете настроить Linux в качестве клиента для серверов, предлагающих общие ресурсы SMB или CIFS, что позволяет серверам получать прямой доступ к общим ресурсам Windows. В этой статье вы узнаете, как смонтировать удаленную файловую систему SMB. Эта процедура может быть применена для монтирования SMB-совместимых общих ресурсов, которые предлагаются с любой платформы, поэтому она работает на общих ресурсах Windows и Linux.

Обнаружение SMB-шар

Перед тем как смонтировать общий ресурс SMB, убедитесь, что на клиентском компьютере установлены пакеты RPM cifs-utils и samba-client. Также вам необходимо добавить службу samba-client в конфигурацию брандмауэра на клиенте с помощью firewall-cmd —add-service samba-client —permanent; firewall-cmd —reload. После установки вы можете использовать команду smbclient -L для обнаружения доступных общих ресурсов SMB.

Команда smbclient запрашивает пароль текущего пользователя. Это связано с тем, что smbclient — это очень общая утилита, которая позволяет составлять список общих ресурсов, а также входить в общие ресурсы Samba на удаленных серверах и извлекать файлы с удаленного сервера. Однако для составления списка шар учетные данные не требуются. Итак, когда команда просит
пароль, вы можете просто нажать Enter. В качестве альтернативы вы можете использовать опцию -Uusername с smbclient для аутентификации с использованием действительной учетной записи пользователя Samba.

Вывод команды smbclient -L

]# smbclient -L 192.168.122.201
Enter root’s password:
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
——— —- ——-
data Disk Demo data directory
homedirs Disk LDAP user home directories
IPC$ IPC IPC Service (Samba Server Version
4.1.1)
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
——— ——-
IPA Samba Server Version 4.1.1
Workgroup Master
——— ——-
MYGROUP IPA

В спойлере вы можете увидеть, как утилита smbclient используется для обнаружения доступных общих ресурсов по IP-адресу 192.168.122.201. (Чтобы обойти возможные проблемы с разрешением имен, вместо имени используется IP-адрес хоста.) Затем команда запрашивает пароль текущего пользователя. Поскольку опция -L запрашивает только список доступных общих ресурсов и ничего больше, вы можете просто нажать Enter, чтобы проигнорировать этот вопрос. Далее отображается текущий домен или рабочая группа сервера Samba, а также доступные общие ресурсы.

В качестве альтернативы вы можете использовать команду net share -l. Эта команда перечисляет только общие ресурсы, доступные на сервере Samba, и не отображает дополнительную конфигурацию, которая отображается при использовании smbclient -L. Обратите внимание, что команда net share -l также выводит список общих принтеров, тогда как smblcient -L просто отображает общие каталоги. Команда net доступна в Linux для предоставления интерфейса командной строки, который более знаком администраторам Windows, которые хотят настроить общий доступ к файлам с сервера Linux.

Вывод результата команды net share -l

]# net share -l
Enter root’s password:
Anonymous login successful
Enumerating shared resources (exports) on remote server:
Share name Type Description
———- —- ————
sambashare Disk Sambashare
IPC$ IPC IPC Service (Samba Server Version 4.1.12)
textprinter Print textprinter
DummyPrinter Print DummyPrinter

Монтирование SMB

Чтобы смонтировать общий ресурс SMB, вы можете использовать команду mount. Вы можете использовать опцию -t cifs, чтобы указать, что монтируется на общий ресурс SMB, но без этой опции он также будет работать, потому что команда mount достаточно умна, чтобы самостоятельно определить, что это общий ресурс SMB, к которому вы хотите подключиться. Если на общем ресурсе разрешен гостевой доступ, вы можете указать опцию -o guest для аутентификации в качестве гостевого пользователя без пароля. Или же используйте параметр -o user = guest для той же цели.
Полная команда монтирования выглядит следующим образом:

mount -t cifs -o user=guest //192.168.122.200/data /mnt

Эта команда монтирует общий ресурс /data, который доступен на 192.168.122.200 в локальном каталоге /mnt. Обратите внимание, что вы сможете получить доступ к файлам в общем ресурсе, но не сможете записывать какие-либо файлы в общем ресурсе, потому что вы аутентифицированы как гостевой пользователь с ограниченными правами доступа к общему ресурсу.

Аутентификация на SMB-шаре

Выше вы прочитали, как подключить общий ресурс с учетными данными гостя. Если вы хотите что-то сделать с общим ресурсом, вы должны аутентифицироваться как действительный пользователь Samba. Это конкретная учетная запись пользователя, которая имеет учетные данные, необходимые для подключения к общему ресурсу Samba. (Обычный пользователь Linux не может этого сделать.) Для этого должен быть создан пользователь Samba.

Чтобы указать имя пользователя Samba, которое вы хотите использовать, вы можете добавить опцию -o username=someone:

mount -o username=sambauser1 //server/share /somewhere

Когда вы делаете это, команда mount запрашивает пароль. Ниже пример, как находить и монтировать общие ресурсы Samba.

1. Зайдите на сервер под рутом.
2. Введите yum install -y cifs-utils samba-client, чтобы установить необходимые пакеты RPM.
3. Введите smbclient -L 192.168.122.200, чтобы получить список доступных общих ресурсов на сервере.
4. Введите mount -t cifs -o guest //192.168.122.200/data /mnt, чтобы смонтировать общий ресурс /data в качестве гостя в каталоге /mnt.
5. Введите mount, чтобы убедиться, что монтирование прошло успешно.

Монтирование SMB-ресурсов через fstab

В качестве альтернативы указанию учетных данных в файле /etc/fstab напрямую, вы можете использовать файл учетных данных. При использовании файла учетных данных сам файл учетных данных содержит имя пользователя, пароль и (необязательно) домен, к которому вы хотите подключиться. При использовании файла учетных данных его необходимо обязательно защитить. Лучший путь
чтобы защитить его, поместите его в домашний каталог пользователя root, установите для владельцев значение root:root и установите права 600.

Содержимое файла creds может выглядеть так
Расположение файла учетных данных описано в man mount.cifs.

Чтобы использовать файл учетных данных при монтировании из командной строки, вы можете включить параметр -o credentials=filename, как показано ниже:

Чтобы сделать то же самое из файла /etc/fstab, в файл /etc/fstab необходимо включить следующую строку:

Новость отредактировал: yatakoi — 28-12-2020, 16:13
Причина: В статью добавлено монтирование SMB через fstab

Источник

Как в Linux монтировать шару CIFS

Что такое Linux и CIFS простыми словами.

Работа с общими папками Windows происходит с использованием протокола CIFS (SMB). Все примеры в данном руководстве выполняются на Linux Ubuntu и CentOS.

Подготовка

Установка пакетов

Для монтирования общей папки необходимо установить набор утилит для работы с CIFS.

yum install cifs-utils

apt-get install cifs-utils

Сетевые порты

Если мы будем монтировать сетевую папку, сервер которой находится за брандмауэром, необходимо открыть следующие порты:

Синтаксис

* вместо mount.cifs можно написать mount -t cifs.

mount.cifs //192.168.1.1/public /mnt

* простой пример монтирования папки public на сервере 192.168.1.1 в локальный каталог /mnt.

Читайте также:  Linux send output to file

Ручное монтирование

Теперь монтирование можно выполнить следующей командой:

mount.cifs //192.168.1.10/share /mnt -o user=dmosk

* в данном примере будет примонтирован каталог share на сервере 192.168.1.10 в локальную папку /mnt под учетной записью dmosk.

То же самое, с использованием домена:

mount.cifs //192.168.1.10/share /mnt -o user=dmosk,domain=dmosk.local

Автоматическое монтирование CIFS через fstab

Для начала создаем файл, в котором будем хранить данные авторизации при подключении к общей папке:

И добавляем в него данные следующего вида:

username=dmosk
password=dPassw0rd
domain=dmosk.local

* в этом примере создана пара логин/пароль — dmosk/dPassw0rd; domain указывать не обязательно, если аутентификация выполняется без него.

Теперь открываем конфигурационный файл fstab:

и добавляем в него следующее:

//192.168.1.10/share /mnt cifs user,rw,credentials=/root/.smbclient 0 0

* в данном примере выполняется монтирование общей папки share на сервере с IP-адресом 192.168.1.10 в каталог /mnt. Параметры для подключения — user: позволяет выполнить монтирование любому пользователю, rw: с правом на чтение и запись, credentials: файл, который мы создали на предыдущем шаге.

Чтобы проверить правильность настроек, вводим следующую команду:

Примеры использования опций

Версии SMB

Если на стороне Windows используется старая или слишком новая версия протокола SMB, при попытке монтирования мы можем получить ошибку mount error(112): Host is down. Чтобы это исправить, указываем версию:

mount.cifs //192.168.1.10/share /mnt/ -o vers=1.0

* монтирование по протоколу SMB1.0

Монтирование от гостевой учетной записи

Если сервер принимает запросы без логина и пароля, то клиент подключается, как гость:

mount.cifs //192.168.1.10/share /mnt -o guest

//192.168.1.10/share /mnt cifs guest 0 0

Права на примонтированные каталоги

При монтировании папки мы можем указать определенные права:

mount.cifs //192.168.1.10/share /mnt -o file_mode=0777,dir_mode=0777

Для указания владельца, который будет назначен для примонтированного каталога, используем:

mount.cifs //192.168.1.10/share /mnt -o uid=33,gid=33

* чтобы посмотреть идентификаторы пользователя, вводим id -u и id -g .

Источник

Samba (Русский)

Samba — это реализация сетевого протокола SMB. Она облегчает организацию общего доступа к файлам и принтерам между системами Linux и Windows и является альтернативой NFS.

Создание общих ресурсов описано в разделе #Сервер; подключение к общим ресурсам описано в разделе #Клиент.

Contents

Сервер

Установка

Samba настраивается с помощью файла /etc/samba/smb.conf , который подробно документирован на странице руководства smb.conf(5) .

В связи с тем, что пакет samba поставляется без данного файла, вам нужно создать его перед запуском smb.service .

Вы можете воспользоваться документированным примером, как в smb.conf.default из git-репозитория Samba для создания /etc/samba/smb.conf .

Включение и запуск служб

Для работы общего доступа к файлам запустите и включите службу smb.service . Смотрите smbd(8) для более подробной информации.

Если вы хотите, чтобы сервер был доступен по имени хоста NetBIOS, пропишите желаемое имя в опции netbios name в smb.conf и запустите и включите службу nmb.service . Смотрите nmbd(8) для более подробной информации.

Настройка межсетевого экрана

Если вы используете межсетевой экран, не забудьте открыть необходимые порты (как правило, 137-139 + 445). Для получения информации о полном списке портов, смотрите использование портов Samba.

Правило UFW

Профиль Ufw для SMB/CIFS доступен в стандартной установке UFW в ufw-fileserver .

Разрешите Samba, выполнив команду ufw allow CIFS от имени root.

Если вы удалили профиль, создайте или отредактируйте файл /etc/ufw/applications.d/samba , добавив следующее:

Затем загрузите этот профиль в UFW, запустив команду ufw app update Samba как root.

После этого можно разрешить доступ к Samba, запустив ufw allow Samba от имени root.

Служба firewalld

Для настройки firewalld, чтобы разрешить Samba в зоне home, выполните:

Эти три службы таковы:

  • samba : для общего доступа к файлам.
  • samba-client : для просмотра общих ресурсов других устройств по сети.
  • samba-dc : для контроллера домена Active Directory.

Параметр —permanent сделает изменения постоянными.

Использование

Управление пользователями

В следующем разделе описывается создание локальной (tdbsam) базы данных пользователей Samba. Для аутентификации пользователей и других целей Samba также может быть привязана к домену Active Directory, может сама служить контроллером домена Active Directory или использоваться с сервером LDAP.

Добавление пользователя

Для работы Samba требуется какой-нибудь Linux-пользователь — вы можете использовать существующего пользователя или создать нового.

Хотя имена пользователей Samba общие с системными пользователями, Samba использует для них отдельные пароли. Чтобы добавить нового пользователя Samba, воспользуйтесь следующей, заменив пользователь_samba на имя нужного пользователя:

Будет предложено задать пароль для этого пользователя.

В зависимости от роли сервера может понадобиться изменить разрешения и атрибуты файлов для аккаунта Samba.

Если вы хотите разрешить новому пользователю только доступ к Samba-ресурсам и запретить полноценный вход в систему, можно ограничить возможности входа:

  • отключить командную оболочку — usermod —shell /usr/bin/nologin —lock пользователь_samba
  • отключить вход по SSH — измените опцию AllowUsers в файле /etc/ssh/sshd_config
Просмотр списка пользователей

Список добавленных в Samba пользователей можно посмотреть с помощью команды pdbedit(8) :

Смена пароля пользователя

Чтобы сменить пароль пользователя, используйте smbpasswd :

Создание общего ресурса для анонимных пользователей

1. Создайте пользователя Linux, который будет использоваться для анонимных пользователей Samba:

2. Добавьте в /etc/samba/smb.conf :

Теперь все анонимные пользователи будут использовать Linux-пользователя guest для доступа к каталогам, указанным в guest.path (в данном примере /tmp/ ).

Убедитесь, что общие ресурсы корректно настроены в соответствии с секцией Share Definitions из smb.conf.default.

Включение следования по символическим ссылкам

После изменений перезапустите службу smb.service .

Расширенная конфигурация

Создание ресурсов общего доступа от имени обычного пользователя

Usershares — это возможность, позволяющая обычным пользователям добавлять, изменять и удалять собственные ресурсы общего доступа.

  1. Создайте каталог, в котором будут храниться описания пользовательских общих ресурсов:
  2. Создайте группу для пользователей, которые смогут создавать общие ресурсы:
  3. Измените владельца каталога на root , а группу на sambashare :
  4. Измените разрешения каталога usershares , чтобы только пользователи из группы sambashare могли создавать файлы. Эта команда также устанавливает sticky bit, благодаря которому пользователи не смогут удалять чужие общие ресурсы:

Задайте эти переменные в конфигурационном файле smb.conf :

Добавьте вашего пользователя в группу sambashare. Замените ваше_имя_пользователя на имя вашего linux-пользователя:

Перезапустите службы smb.service и nmb.service .

Завершите сеанс и войдите снова, чтобы применилось добавление новой группы к вашему пользователю.

Если вы хотите предоставить общий доступ к файлам, находящимся в вашем домашнем каталоге, не забудьте задать доступ как минимум на чтение другим пользователям ( chmod a+rX ).

Теперь у вас должна появиться возможность настраивать общий доступ samba, используя графический интерфейс. Например, в Thunar или Dolphin вы можете нажать правую кнопку мыши на любом каталоге и предоставить для него общий доступ в сети.

Для настройки общего доступа через командную строку используйте одну из следующих команд:

Установка и форсирование прав доступа

Разрешения могут быть применены и к серверу, и к отдельным ресурсам:

См. smb.conf(5) для более подробной информации о настройке прав доступа.

Ограничение версии протокола для повышения безопасности

В файле /etc/samba/smb.conf добавьте опции server min protocol и server max protocol для ограничения используемых версий протокола:

См. server max protocol в smb.conf(5) для обзора поддерживаемых протоколов.

Для совместимости со старыми клиентами и/или серверами вам может понадобиться указать client min protocol = CORE или server min protocol = CORE , но имейте в виду, что это делает вас уязвимым в связи с эксплойтами в SMB1, в том числе к ransomware атакам.

Клиентам, использующим mount.cifs , может понадобиться указать правильный vers=* , например:

Использование шифрования SMB

Нативное шифрование транспорта SMB доступно с версии SMB 3.0. Среди клиентов, поддерживающих такое шифрование, имеются Windows 8 и новее, Windows Server 2012 новее, smbclient в Samba 4.1 и новее.

Для использования шифрования по умолчанию установите параметр server smb encrypt глобально или для отдельных ресурсов. Возможные значения — off , enabled (значение по умолчанию), desired или required :

Смотрите smb.conf(5) для более подробной информации, особенно разделы Effects for SMB1 и Effects for SMB2.

Отключение общего доступа к принтерам

По умолчанию Samba предоставляет общий доступ к принтерам, настроенным через CUPS.

Если вам это не нужно, используйте следующие опции для отключения:

Запрет определённых расширений файлов в общем ресурсе Samba

Samba предоставляет опцию для блокирования файлов по определённым паттернам, вроде расширений файлов. Её можно использовать для предотвращения распространения вирусов или для того, чтобы пользователи не тратили место на определённые файлы. Более подробную информацию можно найти в smb.conf(5) .

Увеличение пропускной способности

Большинству пользователей подойдут настройки по умолчанию. Однако корректное использование ‘socket options’ может улучшить производительность, но ошибки в настройке также могут и ухудшить её. Проверяйте эффекты, прежде чем вносить какие-либо серьезные изменения.

Читайте smb.conf(5) прежде чем применять описанные здесь опции.

Эти опции прописываются в файле /etc/samba/smb.conf в секции [global] .

SMB3 multi-channel может улучшить производительности, однако иногда может испортить данные из-за race conditions. В будущих версиях ситуация может улучшиться:

Ограничение времени бездействия полезно для предотвращения исчерпания ресурсов сервера из-за большого количества неактивных подключений:

Использование sendfile улучшает эффективность использования процессора и повышает скорость Samba:

Установка min receivefile size разрешает zero-copy запись непосредственно из буфера сокета в кэш файловой системы (если доступен). Это может улучшить производительность, но требует тестирования:

Асинхронное чтение/запись файлов может повысить производительность:

Увеличение размера буферов приёма/отправки и флаги оптимизации сокетов могут быть полезны для улучшения производительности. Рекомендуется протестировать каждый флаг отдельно, так как они могут вызывать проблемы в некоторых сетях:

Включение доступа для старых клиентов или устройств

Последние версии Samba больше не предлагают старые методы аутентификации и протоколы, которые всё ещё используются некоторыми старыми клиентами (IP-камерами и т.д.). Такие устройства обычно требуют от сервера разрешения аутентификации NTLMv1 и протокола NT1, известного как CIFS. Чтобы эти устройства работали с последней версией Samba, добавьте эти два параметра в секцию [global] :

Читайте также:  Cs d101ss картридж от какого принтера

Для анонимного/гостевого доступа достаточно лишь первого параметра. Если старое устройство использует имя и пароль для доступа, то нужен и второй параметр тоже.

Включение поиска Spotlight

Spotlight позволяет поддерживающим его клиентам (например, MacOS Finder) быстро искать общие файлы.

Установите и запустите OpenSearch. Установите fs2es-indexer AUR , настройте каталоги, которые вы хотите индексировать, в /etc/fs2es-indexer/config.yml , и запустите/включите fs2es-indexer.service для периодического индексирования.

Измените smb.conf как описано в Samba wiki и перезапустите smb.service для применения изменений.

Клиент

Установите пакет smbclient , который предоставляет ftp-подобный интерфейс командной строки. Часто используемые команды описаны в smbclient(1) .

В качестве легковесной альтернативы (без возможности посмотреть список общих ресурсов и т.д.) можно использовать cifs-utils , который предоставляет команду /usr/bin/mount.cifs .

Некоторые среды рабочего стола также имеют графический интерфейс для доступа к общим ресурсам и управления ими (смотрите #Настройка файлового менеджера).

Просмотр публичных ресурсов для общего доступа

Чтобы вывести список общедоступных ресурсов на сервере:

Также можно использовать команду $ smbtree -N , которая покажет древовидную диаграмму всех общих ресурсов. Она использует широковещательные (broadcast) запросы и потому не рекомендуется для использования в сетях с большим числом компьютеров, но может быть полезна для проверки правильности имён общих ресурсов. Опция -N ( -no-pass ) отключает запрос пароля.

Имена хостов NetBIOS/WINS

Клиенты Samba обрабатывают имена хостов NetBIOS автоматически по умолчанию (поведение регулируется опцией name resolve order в smb.conf ). Другие программы (в том числе mount.cifs ) используют Name Service Switch, который не использует NetBIOS по умолчанию.

Пакет smbclient предоставляет драйвер libnss для разрешения имён NetBIOS. Для его использования установите его вместе с пакетом samba (который предоставляет демон winbindd), запустите и включите службу winbind.service и добавьте wins в строку hosts в файле nsswitch.conf(5) :

Теперь в процессе разрешения имён (например, при использовании mount.cifs или просто ping имя-netbios ) демон winbindd будет отправлять запросы с использованием протокола NetBIOS Name Service (NBNS, также известен как WINS).

По умолчанию он отправляет широковещательный (broadcast) запрос в локальную сеть. Если у вас есть WINS-сервер, вы можете добавить wins server = ip-сервера-wins в smb.conf и перезапустить winbind.service , тогда winbindd и другие клиенты Samba станут отправлять unicast-запросы на указанный IP.

Если вы хотите, чтобы разрешение имени локального компьютера (которое указывается в опции netbios name в smb.conf ) тоже работало, запустите и включите службу nmb.service , которая будет обрабатывать входящие запросы.

Вы можете протестировать разрешение WINS с помощью nmblookup . По умолчанию он отправляет широковещательные запросы в вашу локальную сеть независимо от значения опции wins server .

Имейте в виду, что WINS использует трафик, приходящий из порта 137.

Отключение поддержки NetBIOS/WINS

Если разрешение имён хостов NetBIOS/WINS не используется, может быть предпочтительно отключение этого протокола:

Ручное монтирование

Создайте точку монтирования для ресурса:

Примонтируйте ресурс, в качестве type указав mount.cifs . Не все опции из перечисленных ниже необходимы или желательны:

Опции uid и gid соответствуют локальному (клиентскому) пользователю/группе, которые получат доступ на чтение и запись по указанному пути.

  • СЕРВЕР — Имя сервера.
  • имя_ресурса — Название каталога с общим доступом.
  • точка_монтирования — Локальный каталог, в который будет примонтирован ресурс.
  • [-o опции] — Смотрите страницу руководства mount.cifs(8) для получения информации.

Хранение пароля от общих ресурсов

Хранение паролей в доступном для чтения файле не рекомендуется. Более безопасным методом является использование файла, например, внутри /etc/samba/credentials :

В команде mount замените опции username=myuser,password=mypass на credentials=/etc/samba/credentials/share .

Для безопасности этот файл должен быть доступен только для root:

Автоматическое монтирование

С использованием NetworkManager и GIO/gvfs

NetworkManager может быть настроен на запуск скриптов при изменении состояния сети. Приведённый ниже скрипт использует команду gio, чтобы автоматически монтировать общие ресурсы Samba аналогично тому, как делает ваш файловый менеджер, как описано ниже. Скрипт также безопасно размонтирует их перед отключением сети путём отслеживания событий pre-down и vpn-pre-down . Сделайте скрипт исполняемым после создания.

Создайте символическую ссылку в каталоге /etc/NetworkManager/dispatcher.d/pre-down , чтобы скрипт получал события pre-down :

С помощью записи в fstab

Простой пример cifs записи в fstab с аутентификацией:

С помощью юнита systemd

Создайте новый файл .mount в каталоге /etc/systemd/system , например mnt-myshare.mount . Смотрите systemd.mount(5) для более подробной информации.

What= путь к общему ресурсу

Where= путь, куда он будет примонтирован

Options= опции монтирования

Для использования mnt-myshare.mount запустите этот юнит и включите его для автоматического монтирования при загрузке системы.

Автомонтирование

Для автоматического монтирования ресурса (при обращении к нему, как autofs) можно использовать следующий блок automount:

Остановите и отключите юнит mnt-myshare.mount , а вместо него запустите и включите юнит mnt-myshare.automount .

smbnetfs

Для начала удостоверьтесь, что вам доступны все ресурсы, которые вам нужны для монтирования:

Если это не работает, найдите и измените следующую строку в /etc/samba/smb.conf подобным образом:

Затем перезапустите smb.service и nmb.service .

Если всё работает как нужно, установите пакет smbnetfs .

Затем добавьте следующую строку в файл /etc/fuse.conf :

Скопируйте каталог /etc/smbnetfs/.smb в вашу домашнюю директорию:

Затем создайте ссылку на файл smb.conf :

Если для доступа к каким-либо общим ресурсам нужен пароль, измените файл

/.smb/smbnetfs.auth , прописав в нём пароли для определённых хостов примерно так:

Также можно добавить записи для определённых хостов, которые будут монтироваться smbnetfs, если это необходимо. Более подробную информацию можно найти в

Если вы используете Dolphin или GNOME Files, можно добавить следующую опцию

/.smb/smbnetfs.conf , чтобы избежать предупреждений о переполненном диске, так как smbnetfs по умолчанию сообщает, что свободно 0 байт:

Когда вы закончите настройку, необходимо выполнить

В противном случае smbnetfs пожалуется: ‘insecure config file permissions’.

Наконец, чтобы примонтировать сетевое окружение Samba в каталог по вашему выбору, выполните

Демон

Пакет в Arch Linux также поддерживает дополнительный «общесистемный» режим для smbnetfs. Чтобы его включить, вам необходимо выполнить указанные изменения в каталоге /etc/smbnetfs/.smb .

Затем вы можете запустить и/или включить в автозагрузку демон smbnetfs обычным способом. Общесистемной точкой монтирования является /mnt/smbnet/ .

autofs

Смотрите статью Autofs для получения информации об автомонтировщике ядра (kernel-based) Linux.

Настройка файлового менеджера

GNOME Files, Nemo, Caja, Thunar и PCManFM

Чтобы получить доступ к ресурсам samba через GNOME Files, Nemo, Caja, Thunar или PCManFM, установите пакет gvfs-smb , доступный в официальных репозиториях.

Нажмите Ctrl+l и введите smb://имя_сервера/ресурс в панель адреса, чтобы получить доступ к ресурсу.

Примонтированный ресурс, вероятно, будет представлен в файловой системе по пути /run/user/ваш_UID/gvfs или

Приложения KDE (например, Dolphin) имеют встроенную возможность просмотра ресурсов Samba, в этом случае нет необходимости в дополнительных пакетах. Используйте адрес smb://имя_сервера/имя_ресурса для подключения и просмотра файлов. Для доступа к файлам из приложений, не являющихся частью KDE, можно установить kio-fuse .

Графический интерфейс настроек предоставляется пакетом kdenetwork-filesharing .

Другие графические окружения

Есть несколько полезных программ, но им могут требоваться пакеты, созданные для них. Это может быть сделано с помощью Arch package build system. Хорошая новость заключается в том, что они не нуждаются в особом окружении, устанавливаемом для их поддержки, так что они «тянут» за собой меньше пакетов.

  • pyneighborhoodAUR доступен AUR.
  • Плагины LinNeighborhood, RUmba, xffm-samba для Xffm недоступен в официальных репозиториях или в AUR. Поскольку они не поддерживаются официально (или поддерживаются, но неофициально), они могут быть устаревшими и не работать в полной мере

Советы и рекомендации

Обнаружение общих сетевых ресурсов

Если о других системах в локальной сети ничего не известно, а инструменты вроде smbnetfs не подходят, можно попробовать поискать ресурсы Samba вручную.

Используйте nmap для сканирования локальной сети и поиска систем с открытым TCP-портом 445, который используется протоколом SMB. Имейте в виду, что вам может понадобиться использовать опцию -Pn или задать другой тип пинг-сканирования, так как Windows-системы обычно защищены межсетевым экраном.

Первый результат — другая система; второй — клиент, с которого было выполнено сканирование.

Теперь можно подключиться к этим IP-адресам напрямую, но если вы хотите использовать имена хостов NetBIOS, можно использовать nmblookup(1) , чтобы узнать имена NetBIOS. Имейте в виду, что это не будет работать, если NetBIOS отключен на стороне сервера.

Независимо от вывода, смотрите на , который обозначает хост с открытыми сервисами.

С помощью smbclient(1) чтобы посмотреть список доступных ресурсов на сервере. Вместо IP-адреса можно использовать NetBIOS-имя ( PUTER в данном примере), если оно доступно. Если будет запрошен пароль, можно просто нажать Enter — список общих ресурсов всё равно отобразится:

Удалённое управление компьютером Windows

Samba предлагает набор инструментов для взаимодействия с Windows. Они могут пригодиться, если доступ к компьютеру Windows через удалённый рабочий стол невозможен, как показано на некоторых примерах.

Отправка команды shutdown с комментарием:

Принудительное выключение можно вызвать, заменив -C с комментарием на один -f. Для перезапуска можно добавить -r, за которым следует -C или -f.

Остановка и запуск служб:

Список доступных команд net rpc:

Решение проблем

Не удаётся запустить Samba SMB/CIFS сервер

  • Проверьте smb.conf на наличие ошибок с помощью testparm(1) .
  • Проверьте корректность прав доступа в /var/cache/samba/ и перезапустите smb.service :

Проблемы с разрешениями на SELinux

SELinux по умолчанию не позволяет samba получать доступ к домашним каталогам пользователей. Чтобы решить эту проблему, выполните команду:

Аналогично, samba_export_all_ro и samba_export_all_rw дадут доступ к чтению и записи всех файлов.

Проблемы с разрешениями на AppArmor

Если используется путь к ресурсу, расположенному вне домашнего каталога или каталога usershares, внесите его в белый список в /etc/apparmor.d/local/usr.sbin.smbd . Например:

Читайте также:  Как защитить wordpress от ddos

No dialect specified on mount

Клиент использует неподдерживаемую версию SMB/CIFS, которую сервер не принимает.

Клиенты Windows продолжают запрашивать пароль, даже если общие ресурсы Samba созданы с правами гостя

Установите опцию map to guest в секции global в файле /etc/samba/smb.conf :

С версии Samba 4.10.10 используйте Bad Password вместо Bad User .

Проблемы подключения к Windows 7 — mount error(12): cannot allocate memory

Известная ошибка Windows 7 «mount error(12): cannot allocate memory» может быть исправлена установкой пары ключей в реестре системы Windows:

  • HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache (установить значение 1 )
  • HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size (установить значение 3 )

В качестве альтернативы можно запустить командную строку от имени Администратора и выполнить следующее:

Выполните одно из следующих действий, чтобы изменения вступили в силу:

  • Перезагрузите Windows
  • Перезапустите службу на сервере через services.msc
  • Выполните в командной строке net stop lanmanserver и net start lanmanserver ; после остановки служба может перезапуститься автоматически

Проблемы подключения к Windows 10 1709 и новее — «Windows cannot access» 0x80004005

Эта ошибка затрагивает некоторые машины под управлением Windows 10 версии 1709 и более поздних версий. Она не связана с отключением SMB1 в этой версии, а связана с тем, что Microsoft отключила небезопасный вход для гостей в этой версии для некоторых.

Чтобы исправить ситуацию, откройте редактор групповой политики ( gpedit.msc ). Перейдите к настройке Конфигурация компьютера\Административные шаблоны\Сеть\Рабочая станция Lanman > Включить небезопасные гостевые входы и включите её. В качестве альтернативы измените следующее значение в реестре:

Ошибка: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL

Если вы являетесь домашним пользователем, используете samba исключительно для организации общего доступа к файлам с сервера или NAS и не заинтересованы в организации общего доступа к принтерам, вы можете исправить эту ошибку, добавив следующие строки в файл /etc/samba/smb.conf :

Перезапустите службу smb.service и проверьте журнал:

и больше ошибка не должна появляться.

Не удается предоставить общий доступ к папке

Проблема проявляется в том, что, когда вы пытаетесь предоставить общий доступ к папке через Dolphin (файловый менеджер), и вначале, вроде бы, все работает нормально, после перезапуска Dolphin иконка ресурса исчезла из папки, а в терминале (Konsole) вы видите следующий вывод:

Для решения проблемы включите пользовательские общие ресурсы, как это описано в разделе #Создание ресурсов общего доступа от имени обычного пользователя.

«Просмотр» сети выдает ошибку «Не удалось получить список ресурсов с сервера» (Failed to retrieve share list from server)

И вы используете межсетевой экран (iptables), поскольку не доверяете вашей локальной (школа, университет, отель) сети. Это может происходить по следующей причине: когда smbclient просматривает локальную сеть, он посылает широковещательный запрос на udp-порт 137. Затем серверы сети отвечают вашему клиенту, но, поскольку исходный адрес ответа отличается от адреса назначения, который видел iptables при отправке запроса, iptables не признает ответ как «установленное соединение» («ESTABLISHED») или «относящийся к запросу» («RELATED»), и, следовательно, пакет отбрасывается. Возможное решение — добавление:

в вашу конфигурацию iptables.

Для Uncomplicated Firewall добавьте nf_conntrack_netbios_ns в конце следующей строки в /etc/default/ufw :

и затем выполните следующие команды от имени root:

Чтобы сделать изменения постоянными, добавьте следующую строку в конце файла /etc/ufw/sysctl.conf :

protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE

Вероятно, клиент не имеет доступа к общим ресурсам. Удостоверьтесь, что IP-адрес клиента прописан в строке hosts allow = файла /etc/samba/smb.conf .

Также проблема может быть в том, что клиент использует недопустимую версию протокола. Для проверки попробуйте подключиться с помощью smbclient , вручную указав максимальную версию протокола:

Если команда выполнится успешно, создайте файл конфигрурации:

Подключение к серверу завершилось неудачей: (Error NT_STATUS_UNSUCCESSFUL)

Вероятно, вы указываете smbclient неправильное имя сервера. Чтобы узнать его, запустите на сервере команду hostnamectl и найдите строку «Transient hostname».

Подключение к серверу завершилось неудачей: (Error NT_STATUS_CONNECTION_REFUSED)

Убедитесь, что сервер запущен.

Protocol negotiation failed: NT_STATUS_CONNECTION_RESET

Вероятно, на сервере запрещён SMB1. Добавьте опцию client max protocol = SMB2 в /etc/samba/smb.conf . Или просто добавьте -m SMB2 к команде smbclient .

Правильный пароль не подходит (ошибка 1326)

В Samba 4.5 аутентификация NTLMv1 по умолчанию отключена. Рекомендуется установить последние доступные обновления на клиентах и запретить доступ для неподдерживаемых клиентов.

Если вам всё ещё нужна поддержка очень старых клиентов без поддержки NTLMv2 (например, Windows XP), можно включить NTLMv1, однако это не рекомендуется по соображениям безопасности:

Если клиенты NTLMv2 не могут пройти аутентификацию при включенном NTLMv1, создайте на клиенте следующий файл:

Это изменение также влияет на общие ресурсы samba, смонтированные с помощью mount.cifs. Если после обновления до Samba 4.5 монтирование не удаётся, добавьте опцию sec=ntlmssp к команде монтирования, например:

Смотрите mount.cifs(8) : ntlmssp — Использовать хэширование паролей NTLMv2, заключённое в Raw NTLMSSP сообщении. По умолчанию в основных версиях ядра до версии 3.8 было sec=ntlm. В версии 3.8 значение по умолчанию было изменено на sec=ntlmssp.

Сопоставление зарезервированных символов Windows

Начиная с ядра 3.18, модуль cifs по умолчанию использует опцию «mapposix». При монтировании ресурса с использованием расширений unix и конфигурации Samba по умолчанию, файлы и каталоги, содержащие один из семи зарезервированных символов Windows : \ * ? , отображаются, но доступ к ним невозможен.

  • Использовать недокументированную опцию монтирования nomapposix для cifs
  • Настроить Samba для переадресации символов стиля mapposix («SFM», Services for Mac) на правильные родные символы с помощью fruit
  • Написать своё сопоставление запрещённых символов с помощью catia

Последний подход (использование catia или fruit) имеет недостаток, заключающийся в фильтрации файлов с непечатаемыми символами.

Папка, к которой открыт доступ через графический интерфейс, недоступна для гостей

Этот раздел предполагает, что:

  1. Общие папки настроены, как описано в разделе #Создание ресурсов общего доступа от имени обычного пользователя
  2. Общая папка создана через графический интерфейс и не пользователем root
  3. Включен гостевой доступ для папки
  4. Служба Samba перезапускалась с момента последнего изменения файла /etc/samba/smb.conf

В качестве примера далее используются следующие значения:

  • Общая папка находится внутри домашнего каталога пользователя ( /home/yourUser/Shared )
  • Имя общей папки — MySharedFiles
  • Гостевой доступ открыт только для чтения.
  • Пользователи Windows будут иметь доступ к содержимому общей папки без аутентификации

Проверьте правильность конфигурации samba

Выполните следующую команду из терминала, чтобы проверить правильность настроек:

Проверьте правильность создания общей папки

Выполните следующие команды из терминала:

Если всё хорошо, должен быть файл с именем mysharedfiles

Посмотрите его содержимое:

Содержимое файла должно быть примерно таким:

Проверьте доступ к папке от имени гостя

Выполните следующую команду из терминала. Если будет запрошен пароль, просто нажмите Enter:

Если всё хорошо, в столбце Sharename должен присутствовать MySharedFiles.

Выполните следующую команду, чтобы получить доступ к общей папке в качестве гостя (анонимный вход)

Если всё хорошо, должно появиться приглашение samba-клиента:

Проверьте, что гость может посмотреть содержимое папки:

Если появится ошибка NTFS_STATUS_ACCESS_DENIED , то проблема скорее всего связана с правами доступа к каталогам Unix. Убедитесь, что пользователь samba имеет доступ к нужной папке и всем родительским папкам. Это можно проверить, войдя в учётную запись нужного пользователя (например, с помощью sudo) и попытавшись перейти в нужный каталог.

Mount error: Host is down

Такая ошибка может появиться при монтировании общих ресурсов Synology NAS. Для решения проблемы используйте опцию vers=1.0 .

Software caused connection abort

Файловые менеджеры, использующие gvfs-smb , могут выдавать ошибку Software caused connection abort при записи файла на общий ресурс/сервер. Это может быть связано с тем, что на сервере используется SMB/CIFS версии 1, которую многие маршрутизаторы используют для организации общего доступа к USB-накопителям (например, маршрутизаторы Belkin). Для записи на эти общие ресурсы укажите версию CIFS с помощью опции vers=1.0 . Например:

Это также может произойти после обновления Samba до версии 4.11, в которой SMB1 отключен по умолчанию. Его можно включить с помощью следующей опции:

Ошибка аутентификации

Убедитесь в отсутствии пробелов перед именем пользователя в настройках Samba:

Windows 1709 и новее не видит сервер samba при просмотре сети

В Windows 10 версии 1511 поддержка SMBv1 и, соответственно, обнаружение устройств NetBIOS были отключены по умолчанию. Более новые версии Windows, начиная с версии 1709 («Fall Creators Update»), больше не позволяют установить клиент SMBv1. Это приводит к тому, что хосты с Samba не отображаются в просмотре сети в Проводнике. Хотя проблем с подключением нет и Samba будет работать нормально, пользователи могут захотеть, чтобы их хосты Samba всё-таки отображались. wsdd AUR реализует демон Web Service Discovery. Благодаря ему (Samba) хосты, такие как NAS, могут быть обнаружены клиентами Web Service Discovery, такими как Windows. Настройки по умолчанию должны работать для большинства установок, и всё, что вам нужно сделать, это запустить и включить службу wsdd.service .

Настройки по умолчанию (представлять себя, используя имя хоста машины и рабочую группу «WORKGROUP») должна подходить в большинстве случаев. Если нужно, вы можете изменить настройки, передав wsdd дополнительные аргументы, добавив их в /etc/conf.d/wsdd (подробности есть в руководстве wsdd).

wsdd2 AUR делает то же самое, но написан на C, а не на Python. По умолчанию он берёт параметры netbios name и workgroup из файла smb.conf .

Файлы из IOS больше не могут копироваться в общий ресурс Samba в Arch Linux, начиная с IOS 14.5

Начиная с IOS 14.5 при попытке передачи данных с устройства под управлением IOS с помощью приложения «Файлы» на общий ресурс samba в Arch Linux возникает ошибка:

Источник

Поделиться с друзьями
КомпСовет
Adblock
detector