Error samba nt status unsuccessful

Состояние перевода: На этой странице представлен перевод статьи Samba. Дата последней синхронизации: 20 марта 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Состояние перевода: На этой странице представлен перевод статьи Samba. Дата последней синхронизации: 20 марта 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

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

Сервер

Установка

Установите пакет samba.

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

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

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

Примечание:

  • Значение log file в стандартном файле настроек указывает в место, доступное только для чтения, что будет вызывать ошибки. Можно воспользоваться одним из следующих решений:
    • Задайте расположение, доступное для записи: log file = /var/log/samba/%m.log
    • Используйте бекенд для нефайлового журналирования: замените logging = syslog на syslog only = yes или используйте logging = systemd
  • Если требуется; workgroup, указанная в секции [global], должна соответствовать домашней группе (workgroup) Windows (по умолчанию: WORKGROUP).

Совет: Каждый раз, когда вы изменяете файл smb.conf, запускайте команду testparm(1) для проверки файла на синтаксические ошибки.

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

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

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

Примечание: Использовать nmb.service необязательно, однако он нужен для подключения к Samba-серверу по имени хоста (например, smb://hostname/). Если в вашей сети используются только компьютеры с Windows 10 или новее, также стоит установить демон WSD, чтобы Проводник отображал сервер в просмотре сети.

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

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

Правило UFW

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

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

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

[Samba]
title=LanManager-like file and printer server for Unix
description=The Samba software suite is a collection of programs that implements the SMB/CIFS protocol for unix systems, allowing you to serve files and printers to Windows, NT, OS/2 and DOS clients. This protocol is sometimes also referred to as the LanManager or NetBIOS protocol.
ports=137,138/udp|139,445/tcp

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

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

Служба firewalld

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

# firewall-cmd --permanent --add-service={samba,samba-client,samba-dc} --zone=home

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

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

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

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

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

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

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

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

Примечание: Пользователь и группа nobody изначально существуют в системе, используются как гостевой аккаунт (guest account) по умолчанию и могут быть использованы в ресурсах для общего доступа с опцией guest ok = yes, благодаря чему пользователям не понадобится логиниться для доступа к таким ресурсам.

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

# smbpasswd -a пользователь_samba

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

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

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

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

См. также рекомендации по повышению защищённости системы.

Просмотр списка пользователей

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

# pdbedit -L -v
Смена пароля пользователя

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

# smbpasswd пользователь_samba

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

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

# useradd guest -s /bin/nologin

Примечание: Имя пользователя может быть любым допустимым именем Linux, не только «guest». Пользователь не обязательно должен быть пользователем Samba.

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

/etc/samba/smb.conf
...
[global]
security = user
map to guest = bad user
guest account = guest

[guest]
    comment = guest
    path = /tmp/
    public = yes
    only guest = yes
    writable = yes
    printable = no

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

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

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

Важно: Включение опции follow symlinks может быть риском для безопасности.

/etc/samba/smb.conf
...
[global]
   follow symlinks = yes
   wide links = yes
   unix extensions = no

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

Примечание: При использовании AppArmor, если символическая ссылка указывает за пределы домашнего каталога пользователя или usershare, понадобится изменить разрешения в профиле AppArmor.

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

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

Примечание: Это опциональная возможность. Можете пропустить этот раздел, если она вам не нужна.

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

  1. Создайте каталог, в котором будут храниться описания пользовательских общих ресурсов:
    # mkdir /var/lib/samba/usershares
  2. Создайте группу для пользователей, которые смогут создавать общие ресурсы:
    # groupadd -r sambashare
  3. Измените владельца каталога на root, а группу на sambashare:
    # chown root:sambashare /var/lib/samba/usershares
  4. Измените разрешения каталога usershares, чтобы только пользователи из группы sambashare могли создавать файлы. Эта команда также устанавливает sticky bit, благодаря которому пользователи не смогут удалять чужие общие ресурсы:
    # chmod 1770 /var/lib/samba/usershares

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

/etc/samba/smb.conf
[global]
  usershare path = /var/lib/samba/usershares
  usershare max shares = 100
  usershare allow guests = yes
  usershare owner only = yes

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

# gpasswd sambashare -a ваше_имя_пользователя

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

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

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

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

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

# net usershare add имя-ресурса абсолютный-путь [комментарий] [пользователь:{R|D|F}] [guest_ok={y|n}]
# net usershare delete имя-ресурса
# net usershare list wildcard-имя-ресурса
# net usershare info wildcard-имя-ресурса

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

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

/etc/samba/smb.conf
[global]
  ;inherit owner = unix only ; Наследовать владельца родительского каталога для новых файлов и каталогов
  ;inherit permissions = yes ; Наследовать разрешения родительского каталога для новых файлов и каталогов
  create mask = 0664
  directory mask = 2755
  force create mode = 0644
  force directory mode = 2755
  ...

[media]
  comment = Ресурс, доступный для greg и pcusers
  path = /path/to/media
  valid users = greg @pcusers
  force group = +pcusers
  public = no
  writable = yes
  create mask = 0664
  directory mask = 2775
  force create mode = 0664
  force directory mode = 2775

[public]
  comment = Общий ресурс, в котором archie имеет доступ на запись
  path = /path/to/public
  public = yes
  read only = yes
  write list = archie
  printable = no

[guests]
  comment = Ресурс, разрешающий чтение и запись всем пользователям
  path = /path/to/guests
  public = yes
  only guest = yes
  writable = yes
  printable = no

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

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

Важно: По умолчанию Samba версии 4.11 допускает соединение с использованием устаревшего и небезопасного протокола SMB1. Для этих версий Samba крайне рекомендуется задать опцию server min protocol = SMB2_02 для защиты от ransomware атак. В Samba 4.11 и новее по умолчанию используется SMB2, так что изменения не требуются.

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

/etc/samba/smb.conf
[global]
  server min protocol = SMB2_02
  ; server max protocol = SMB3

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

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

Совет: Используйте server min protocol = SMB3_00 если хотите использовать только самый новый протокол SMB3, например с клиентами на Windows 8 и новее.

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

# mount -t cifs //SERVER/имя-ресурса /mnt/точка-монтирования -o username=пользователь,password=пароль,iocharset=utf8,vers=3.1.1

Подробнее см. mount.cifs(8).

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

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

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

/etc/samba/smb.conf
[global]
  server smb encrypt = desired

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

Совет: При ручном монтировании ресурса укажите опцию монтирования seal чтобы принудительно включить шифрование.

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

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

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

/etc/samba/smb.conf
[global]
  load printers = no
  printing = bsd
  printcap name = /dev/null
  disable spoolss = yes
  show add printer wizard = no

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

Примечание: Использование этой опции влияет на производительность Samba, так как вынуждает проверять все файлы и каталоги на совпадение по мере их сканирования.

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

/etc/samba/smb.conf
...
[myshare]
  comment = Private
  path = /mnt/data
  read only = no
  veto files = /*.exe/*.com/*.dll/*.bat/*.vbs/*.tmp/*.mp3/*.avi/*.mp4/*.wmv/*.wma/

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

Важно: Помните, что это может привести к проблемам с подключением и потенциально сломать ваш стек TCP/IP.

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

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

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

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

server multi channel support = yes

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

deadtime = 30

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

use sendfile = yes

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

min receivefile size = 16384

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

aio read size = 1
aio write size = 1

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

socket options = IPTOS_LOWDELAY TCP_NODELAY IPTOS_THROUGHPUT SO_RCVBUF=131072 SO_SNDBUF=131072

Примечание: Для некоторых опций может понадобиться изменить настройки сетевого интерфейса, см. Sysctl#Networking.

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

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

server min protocol = NT1
ntlm auth = yes

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

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

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

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

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

Клиент

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

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

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

Примечание:

  • smbclient требует наличия файла /etc/samba/smb.conf (смотрите раздел #Установка); можно просто создать пустой файл командой touch.
  • После установки cifs-utils или smbclient загрузите модуль ядра cifs или перезагрузитесь, чтобы не возникало ошибок монтирования.

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

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

$ smbclient -L hostname -U%

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

Примечание: smbtree использует SMB1 и NetBIOS, что означает, что они должны быть включены на стороне сервера, а на стороне клиента нужно добавить client min protocol = NT1 в smb.conf. Без этого smbtree ничего не выведет.

Имена хостов 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):

/etc/nsswitch.conf
...
hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns wins
...

Примечание: Из-за текущей ошибки в winbind.service вам нужно вручную изменить файл юнита как описано в этом баг-репорте

Теперь в процессе разрешения имён (например, при использовании 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 не используется, может быть предпочтительно отключение этого протокола:

/etc/samba/smb.conf
[global]
  disable netbios = yes
  dns proxy = no

Затем отключите/остановите winbind.service.

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

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

# mkdir /mnt/точка_монтирования

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

# mount -t cifs //СЕРВЕР/имя_ресурса /mnt/точка_монтирования -o username=имя_пользователя,password=пароль,workgroup=рабочая_группа,iocharset=utf8,uid=пользователь,gid=группа

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

Примечание:

  • Если используемые uid и gid не соответствуют пользователю на сервере, могут помочь опции forceuid и forcegid. Но имейте в виду, что тогда права доступа, отображаемые на клиенте, могут не соответствовать реальным правам доступа на сервере. Подробности смотрите в разделе File And Directory Ownership And Permissions в mount.cifs(8) § FILE AND DIRECTORY OWNERSHIP AND PERMISSIONS.
  • Для подключения общего ресурса Windows без аутентификации укажите "username=*".

Важно: Использование uid и/или gid может приводить к ошибкам ввода-вывода; вместо этого рекомендуется установить/проверить корректность разрешений и атрибутов файлов.

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

Примечание:

  • Не используйте слэш / в конце пути. //СЕРВЕР/имя_ресурса/ не будет работать.
  • Если примонтированный вами ресурс работает нестабильно или зависает (freeze), попробуйте включить другую версию протокола SMB, используя опцию vers=. Например, vers=2.0 для Windows Vista.
  • Если при завершении работы системы на примонтированных ресурсах происходят таймауты, смотрите wpa_supplicant#Problem with mounted network shares (cifs) and shutdown.

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

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

/etc/samba/credentials/share
username=имя_пользователя
password=пароль

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

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

# chown root:root /etc/samba/credentials
# chmod 700 /etc/samba/credentials
# chmod 600 /etc/samba/credentials/share

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

Примечание: Вам может понадобиться включить службу systemd-networkd-wait-online.service или NetworkManager-wait-online.service (зависит от вашей установки) для корректного запуска системы.

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

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

/etc/NetworkManager/dispatcher.d/30-samba.sh
#!/bin/sh

# Найдите UUID нужного соединения с помощью команды «nmcli con show».
# Поддерживаются все типы соединений NetworkManager: беспроводные, VPN, проводные...
WANTED_CON_UUID="CHANGE-ME-NOW-9c7eff15-010a-4b1c-a786-9b4efa218ba9"

# Пользователь, под которым будет примонтирован общий ресурс
USER="yourusername"
# Путь, который отображается в вашем файловом менеджере, когда вы вручную монтируете нужный общий ресурс
SMB_URL="smb://servername/share"

# Получаем runtime-каталог пользователя. Если его нет, то просто выходим
XDG_RUNTIME_DIR=$(loginctl show-user --property=RuntimePath --value "$USER") || exit 0

if [ "$CONNECTION_UUID" = "$WANTED_CON_UUID" ]; then
    
    # Параметр скрипта $1: название сетевого интерфейса, не используется
    # Параметр скрипта $2: отправленное событие
    
    case "$2" in
        "up")
            su $USER -c "DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus gio mount $SMB_URL"
            ;;
        "pre-down"|"vpn-pre-down")
            su $USER -c "DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus gio mount -uf $SMB_URL"
            ;;
    esac
fi

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

# ln -s /etc/NetworkManager/dispatcher.d/30-samba.sh /etc/NetworkManager/dispatcher.d/pre-down.d/30-samba.sh

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

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

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

/etc/fstab
//СЕРВЕР/имя_ресурса /mnt/точка_монтирования cifs _netdev,nofail,username=имя_пользователя,password=пароль 0 0

Примечание:

  • Пробелы в именах ресурсов должны быть заменены на 40 (восьмеричный ASCII-код для пробелов). Например, //СЕРВЕР/имя ресурса должно быть заменено на //СЕРВЕР/имя40ресурса в /etc/fstab.
  • Чтобы разрешить монтирование простым пользователям без прав root, когда точка монтирования находится в доступном пользователю каталоге (например, домашнем), добавьте опцию users (обязательно с s на конце).

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

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

Примечание: Имя создаваемого файла должно соответствовать точке монтирования, которую вы хотите использовать. Например, имя mnt-myshare.mount должно использоваться для точки монтирования /mnt/myshare. В противном случае вы получите ошибку systemd[1]: mnt-myshare.mount: Where= setting does not match unit name. Refusing..

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

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

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

Примечание:

  • К сетевым точкам монтирования автоматически добавляются After-зависимости remote-fs-pre.target, network.target и network-online.target, а также Before-зависимость remote-fs.target, если не указана опция nofail; иначе используется Wants.
  • Добавьте noauto в Options для отключения автоматического монтирования (если его не будет монтировать какой-нибудь другой юнит).
  • Если в качестве адреса сервера вы хотите использовать имя хоста вместо IP-адреса, добавьте nss-lookup.target в After. Это может предотвратить ошибки монтироваия при загрузке.
/etc/systemd/system/mnt-myshare.mount
[Unit]
Description=Mount Share at boot

[Mount]
What=//server/share
Where=/mnt/myshare
Options=_netdev,credentials=/etc/samba/credentials/myshare,iocharset=utf8,rw
Type=cifs
TimeoutSec=30

[Install]
WantedBy=multi-user.target

Совет:

  • На случай, если удалённая система станет недоступна, добавьте ForceUnmount=true в секцию [Mount], чтобы разрешить принудительное размонтирование.
  • Если общий ресурс имеет группы с доступом только для чтения, добавьте uid=пользователь или gid=группа в Options=, чтобы указать пользователя/группу, которые имеют право на запись.

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

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

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

/etc/systemd/system/mnt-myshare.automount
[Unit]
Description=Automount myshare

[Automount]
Where=/mnt/myshare

[Install]
WantedBy=multi-user.target

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

Совет: Добавьте TimeoutIdleSec для включения автоматического размонтирования при бездействии. Подробнее смотрите systemd.automount(5).

smbnetfs

Примечание: для smbnetfs необходима целая (нетронутая?) (intact) установка сервера Samba. Смотрите выше, как это сделать

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

$ smbtree -U удаленный_пользователь

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

domain master = auto

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

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

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

user_allow_other

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

$ cp -a /etc/smbnetfs/.smb ~

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

$ ln -sf /etc/samba/smb.conf ~/.smb/smb.conf

Если для доступа к каким-либо общим ресурсам нужен пароль, измените файл ~/.smb/smbnetfs.auth, прописав в нём пароли для определённых хостов примерно так:

~/.smb/smbnetfs.auth
auth			"хост" "пользователь" "пароль"

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

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

~/.smb/smbnetfs.conf
free_space_size 1073741824

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

$ chmod 600 ~/.smb/smbnetfs.*

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

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

$ smbnetfs точка_монтирования
Демон

Пакет в 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 или ~/.gvfs.

KDE

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

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

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

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

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

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

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

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

Сперва установите пакеты nmap и smbclient.

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

$ nmap -p 445 "192.168.1.*"
Starting Nmap 7.92 ( https://nmap.org ) at 2022-03-13 12:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.0011s latency).

PORT    STATE  SERVICE
445/tcp open  microsoft-ds

Nmap scan report for 192.168.1.2
Host is up (0.00011s latency).

PORT    STATE SERVICE
445/tcp open  microsoft-ds

Nmap done: 256 IP addresses (2 hosts up) scanned in 2.45 seconds

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

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

$ nmblookup -A 192.168.1.1
Looking up status of 192.168.1.1
        PUTER           <00> -         B <ACTIVE>
        HOMENET         <00> - <GROUP> B <ACTIVE>
        PUTER           <03> -         B <ACTIVE>
        PUTER           <20> -         B <ACTIVE>
        HOMENET         <1e> - <GROUP> B <ACTIVE>
        USERNAME        <03> -         B <ACTIVE>
        HOMENET         <1d> -         B <ACTIVE>
        MSBROWSE        <01> - <GROUP> B <ACTIVE>

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

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

$ smbclient -L \192.168.1.1
Sharename       Type      Comment
---------       ----      -------
MY_MUSIC        Disk
SHAREDDOCS      Disk
PRINTER$        Disk
PRINTER         Printer
IPC$            IPC       Remote Inter Process Communication

Server               Comment
---------            -------
PUTER

Workgroup            Master
---------            -------
HOMENET               PUTER

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

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

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

$ net rpc shutdown -C "comment" -I IPADDRESS -U USERNAME%PASSWORD

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

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

$ net rpc service stop SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD

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

$ net rpc

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

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

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

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

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

# setsebool -P samba_enable_home_dirs 1

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

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

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

/etc/apparmor.d/local/usr.sbin.smbd
"/data/" rk,
"/data/**" lrwk,

No dialect specified on mount

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

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

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

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

map to guest = Bad User

С версии 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:

  • HKLMSYSTEMCurrentControlSetControlSession ManagerMemory ManagementLargeSystemCache (установить значение 1)
  • HKLMSYSTEMCurrentControlSetServicesLanmanServerParametersSize (установить значение 3)

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

reg add "HKLMSYSTEMCurrentControlSetControlSession ManagerMemory Management" /v "LargeSystemCache" /t REG_DWORD /d 1 /f
reg add "HKLMSYSTEMCurrentControlSetServicesLanmanServerParameters" /v "Size" /t REG_DWORD /d 3 /f

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

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

Примечание: Поиск решения в интернете подскажет другое решение, рекомендующее пользователям добавить ключ, изменяющий размер «IRPStackSize». Это неправильное решение для устранения проблемы в Windows 7. Не применяйте его.

Исходная статья.

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

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

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

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanWorkstationParameters]
"AllowInsecureGuestAuth"=dword:1

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

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

/etc/samba/smb.conf
[global]
  load printers = No
  printing = bsd
  printcap name = /dev/null
  disable spoolss = Yes

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

# cat /var/log/samba/smbd.log

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

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

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

‘net usershare’ returned error 255: net usershare: usershares are currently disabled

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

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

iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns

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

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

IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_irc nf_nat_irc"

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

echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper
ufw allow CIFS
ufw reload

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

net.netfilter.nf_conntrack_helper=1

protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE

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

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

$ smbclient -U <пользователь> -L //<сервер> -m <версия протокола, например SMB2> -W <домен>

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

~/.smb/smb.conf
[global]
  workgroup = <домен>
  client max protocol = SMB2

Подключение к серверу завершилось неудачей: (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, однако это не рекомендуется по соображениям безопасности:

/etc/samba/smb.conf
[global]
  lanman auth = yes
  ntlm auth = yes

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

/home/user/.smb/smb.conf
[global]
  sec = ntlmv2
  client ntlmv2 auth = yes

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

mount.cifs //server/share /mnt/point -o 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
# mount.cifs //server/share /mnt/point -o nomapposix
  • Настроить Samba для переадресации символов стиля mapposix («SFM», Services for Mac) на правильные родные символы с помощью fruit
/etc/samba/smb.conf
[global]
  vfs objects = catia fruit
  fruit:encoding = native
  • Написать своё сопоставление запрещённых символов с помощью catia
/etc/samba/smb.conf
[global]
  vfs objects = catia
  catia:mappings = 0x22:0xf022, 0x2a:0xf02a, 0x2f:0xf02f, 0x3a:0xf03a, 0x3c:0xf03c, 0x3e:0xf03e, 0x3f:0xf03f, 0x5c:0xf05c, 0x7c:0xf07c, 0x20:0xf020

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

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

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

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

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

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

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

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

$ testparm

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

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

$ cd /var/lib/samba/usershare
$ ls

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

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

$ cat mysharedfiles

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

/var/lib/samba/usershare/mysharedfiles
path=/home/yourUser/Shared
comment=
usershare_acl=S-1-1-0:r
guest_ok=y
sharename=MySharedFiles

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

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

$ smbclient -L localhost

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

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

$ smbclient -N //localhost/MySharedFiles

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

smb: >

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

smb: > ls

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

Mount error: Host is down

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

Примечание: SMB1 имеет уязвимости в безопасности и уже использовался в успешных атаках вымогательского ПО.

Software caused connection abort

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

/etc/fstab
//СЕРВЕР/имя_ресурса /mnt/точка_монтирования cifs _netdev,guest,file_mode=0777,dir_mode=0777,vers=1.0 0 0

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

/etc/samba/smb.conf
[global]
client min protocol = CORE

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

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

~/.samba
username= user
password=pass

Правильно так:

~/.samba
username=user
password=pass

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

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

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

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

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

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

The operation couldn't be completed
Operation canceled

Чтобы исправить эту проблему, добавьте следующее в секцию [global] файла smb.conf и перезапустите службу smb.service: [1]

## addition for IOS Files transfer-to server
vfs object = fruit streams_xattr

Смотрите также

  • Samba: An Introduction
  • Официальный сайт Samba
  • Samba 3.2.x HOWTO and Reference Guide (устаревшая, но всё ещё самая подробная документация)
  • Википедия
  • Gentoo:Samba/Guide
  • Debian:Samba/ServerSimple
  • KSMBD — Сервер ядра linux, реализующий протокол SMB3 в пространстве ядра для обмена файлами по сети.
  • Ускорение работы Samba[устаревшая ссылка 2022-09-23 ⓘ]
  • Печать

Страницы: [1] 2  Все   Вниз

Тема: Не могу подключиться к сетевым ресурсам win из-под ubuntu  (Прочитано 21671 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
All-odin

Пытаюсь подключиться к вин-ресурсам через «Переход-Соединиться с сервером». Задаю имя сервера, ресурс, имя пользователя, домен. Запрашивает пароль. После ввода пароля — ошибка «Не удаётся отобразить адрес smb:…  Ошибка подключения ресурса Windows».
Если подключаться через

smbclient имя_сервера -U имя_пользователя@домен — выдаёт ошибку «Connection to сервер failed (Error NT_STATUS_UNSUCCESSFUL)».
Система — Ubuntu 10.04. Что делать, куда копать, где можно посмотреть более подробные логи?


Оффлайн
podkovyrsty

Включить дебаг режим в смбклиенте.

Шаг за шагом можно достичь цели.


Оффлайн
All-odin

Каким образом, поподробнее, пожалуйста.


Оффлайн
podkovyrsty

Каким образом, поподробнее, пожалуйста.

man smbclient же

Шаг за шагом можно достичь цели.


Оффлайн
CyberTramp

sudo dpkg-reconfigure nautilus


Пользователь решил продолжить мысль [time]Fri May  6 11:48:02 2011[/time]:


Пытаюсь подключиться к вин-ресурсам через «Переход-Соединиться с сервером». Задаю имя сервера, ресурс, имя пользователя, домен. Запрашивает пароль. После ввода пароля — ошибка «Не удаётся отобразить адрес smb:…  Ошибка подключения ресурса Windows».

« Последнее редактирование: 06 Мая 2011, 11:48:29 от CyberTramp »


Оффлайн
All-odin

sudo dpkg-reconfigure nautilus

не помогло


Оффлайн
podkovyrsty

sudo dpkg-reconfigure nautilus

не помогло

А дебаг что пишет?

Шаг за шагом можно достичь цели.


Оффлайн
All-odin


Оффлайн
uid0

Домен или просто сеть?
smb.conf покажите


Оффлайн
podkovyrsty

Каталог то есть такой: /usr/share/samba ?

Шаг за шагом можно достичь цели.


Оффлайн
All-odin

Домен или просто сеть?
smb.conf покажите

Домен. Дело в том, что в старом домене всё работало (без каких бы то не было правок смб.конф), но не так давно у нас прошла миграция в другой, в котором всё сломалось.
Вообще, я думал, что smb.conf — это для samba-сервера, а не для клиента…

Каталог то есть такой: /usr/share/samba ?

Есть


Оффлайн
gef

Столкнулся с той же проблемой.
Решение было найдено?


Оффлайн
unixod

Может быть что-то не стоит? Попробуйте в наутилусе расшарить папку. Ubuntu там накачает пакетов. Может именно их не хватает.


Оффлайн
slesar.mira

Столкнулся с той же проблемой.
Решение было найдено?

попробуйте, работает ли с IP адресом вместо DNS имени сервера, у меня не заработало так:

me@ubuntu:~$smbclient //BIGCOMP/films -U admin@BIGCOMPно сработало так:

me@ubuntu:~$smbclient //192.168.0.10/films -U admin@BIGCOMP


Оффлайн
thunderamur

апну тему, актуальна блин.
Шара заведена на Ubuntu 12.04. Другая шара на другом бубне с точно такими же настройками работает. Эта почему-то нет. В винде нормально заходит. В smbclient тоже норм. В наутилусе фиг.

Ubuntu 14.04.

« Последнее редактирование: 08 Августа 2014, 08:30:31 от thunderamur »


  • Печать

Страницы: [1] 2  Все   Вверх

Ссылки по теме

  • Интеграция Active Directory
  • Samba/Контроллер домена Active Directory
  • NFS (Русский)

Состояние перевода: На этой странице представлен перевод статьи Samba. Дата последней синхронизации: 2014-10-08. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

Contents

  • 1 Настройка сервера
    • 1.1 Установка
      • 1.1.1 Настройка межсетевого экрана
    • 1.2 Создание ресурсов для общего доступа
    • 1.3 Запуск служб
    • 1.4 Создание ресурсов общего доступа от имени обычного пользователя
    • 1.5 Добавление пользователя
    • 1.6 Смена пароля Samba-пользователя
  • 2 Настройка клиента
    • 2.1 Ручное монтирование
      • 2.1.1 Добавление ресурса в /etc/fstab
      • 2.1.2 Монтирование пользователями
    • 2.2 Имена хостов WINS
    • 2.3 Автоматическое монтирование
      • 2.3.1 smbnetfs
        • 2.3.1.1 Демон
      • 2.3.2 autofs
    • 2.4 Настройка файлового менеджера
      • 2.4.1 Nautilus, Nemo, Thunar и PCManFM
      • 2.4.2 KDE
      • 2.4.3 Другие графические окружения
  • 3 Решение проблем
    • 3.1 Проблемы подключения к Windows 7 — mount error(12): cannot allocate memory
    • 3.2 Проблемы получения доступа к ресурсам, защищенным паролем, из Windows
    • 3.3 Диалоговое окно появляется с большой задержкой
    • 3.4 Ошибка: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
    • 3.5 Не удается предоставить общий доступ к папке
    • 3.6 «Просмотр» сети выдает ошибку «Не удалось получить список ресурсов с сервера» (Failed to retrieve share list from server)
    • 3.7 Вы не являетесь владельцем каталога
    • 3.8 protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
    • 3.9 Подключение к серверу завершилось неудачей: (Error NT_STATUS_UNSUCCESSFUL)
  • 4 Смотрите также
  • 5 Больше информации

Настройка сервера

Установка

Установите пакет samba.

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

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

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

Примечание:

  • Файл настроек по умолчанию задаёт log file место, доступное только для чтения, что будет вызывать ошибки. Вы можете воспользоваться одним из следующих решений:
    • Задайте файлу регистрации расположение с возможностью записи: log file = /var/log/samba/%m.log
    • Используйте бекенд для нефайлового журналирования: замените logging = syslog на syslog only = yes или используйте logging = systemd
  • Если требуется; workgroup, указанная в секции [global], должна соответствовать домашней группе (workgroup) Windows (по умолчанию: WORKGROUP).

Совет: Каждый раз, когда вы изменяете файл smb.conf, запускайте команду testparm(1) для проверки файла на синтаксические ошибки.

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

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

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

Откройте файл /etc/samba/smb.conf и прокрутите текст вниз до секции Share Definitions. В конфигурации по умолчанию автоматически предоставляется общий доступ к домашним каталогам всех пользователей. Также по умолчанию он предоставляется для принтеров. Здесь есть несколько закомментированных примеров конфигурации. Больше информации о доступных опциях для ресурсов с общим доступом можно найти на странице руководства smb.conf(5), которая также доступна в онлайн версии.

Со стороны Windows не забудьте изменить файл smb.conf для Windows Workgroup (в Windows по умолчанию: WORKGROUP).

Запуск служб

Примечание: В samba 4.8.0-1, службы были переименованы из smbd.service и nmbd.service в smb.service и nmb.service.

Для организации базовых возможностей обмена файлами при помощи SMB запустите/включите службы smb.service и nmb.service. Для получения дополнительной информации смотрите страницы справочного руководства (man) smbd и nmbd.

Совет: Вместо того, чтобы запускать службу сразу после каждой загрузки системы, вы можете включить smb.socket, благодаря чему она будет запускаться лишь при появлении первого входящего соединения. При этом не забудьте отключить службу smb.service

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

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

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

Эта команда создает необходимый каталог в /var/lib/samba:

# mkdir -p /var/lib/samba/usershare

Эта команда создает группу sambashare:

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

# chown root:sambashare /var/lib/samba/usershare

Эта команда меняет разрешения каталога usershares таким образом, что пользователи, входящие в группу sambashare, могут читать, записывать и выполнять файлы:

# chmod 1770 /var/lib/samba/usershare

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

/etc/samba/smb.conf

...
[global]
  usershare path = /var/lib/samba/usershare
  usershare max shares = 100
  usershare allow guests = yes
  usershare owner only = yes
  ...

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

# usermod -a -G sambashare *ваше_имя_пользователя*

Перезапустите службы smbd и nmbd.

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

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

Создайте учетную запись пользователя Linux для пользователя samba. При необходимости замените *пользователь_samba* на желаемое имя:

# useradd *пользователь_samba*

Затем создайте учетную запись пользователя Samba с тем же именем:

# pdbedit -a -u *пользователь_samba*

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

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

# smbpasswd *пользователь_samba*

Настройка клиента

Для доступа к файлам с использованием сервера Samba/SMB/CIFS необходим только пакет smbclient. Он доступен в официальных репозиториях.

Вы можете получать доступ и монтировать локально ресурсы, предоставленные для общего доступа другими компьютерами сети, используя графический интерфейс или интерфейс командной строки. Графический способ ограничен, так как большинство легковесных окружений рабочего стола не имеет родных средств настройки доступа к этим ресурсам.

Существует две «части» предоставления общего доступа. Первая лежит в основе механизма работы файловой системы, а вторая является интерфейсом, который позволяет пользователю выбирать монтируемые ресурсы общего доступа. В некоторых окружениях первая часть уже встроена.

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

Установите пакет smbclient из официальных репозиториев. Если вы желаете получить более легкий подход и не нуждаетесь в возможности вывода списка общедоступных ресурсов, необходимо установить только cifs-utils, чтобы предоставить файл /usr/bin/mount.cifs.

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

$ smbclient -L *hostname* -U%

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

# mkdir /mnt/*точка_монтирования*

Примонтируйте ресурс, используя в качестве образца файл mount.cifs. Не все опции из перечисленных ниже необходимы или хороши (например, password).

# mount -t cifs //*СЕРВЕР*/*имя_ресурса* /mnt/*точка_монтирования* -o user=*имя_пользователя*,password=*пароль*,workgroup=*рабочая_группа*,ip=*IP_сервера*

SERVER

имя_ресурса

точка_монтирования

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

-o [options]

Смотрите страницу руководства [mount.cifs(8)](https://jlk.fjfi.cvut.cz/arch/manpages/man/mount.cifs.8) для получения информации.

Примечание:

  • Воздержитесь от использования слэша / на конце. //*СЕРВЕР*/*имя_ресурса***/** не будет работать
  • Если примонтированный вами ресурс работает нестабильно или зависает (freeze), попробуйте включить другую версию протокола SMB, используя опцию vers=. Например, vers=2.0 для Windows Vista.

Добавление ресурса в /etc/fstab

Самый простой способ добавить запись в fstab — использовать что-то вроде этого:

/etc/fstab //*СЕРВЕР*/*имя_ресурса* /mnt/*точка_монтирования* cifs username=*имя_пользователя*,password=*пароль* 0 0

Однако, хранение паролей в легкочитаемом файле не рекомендуется! Более безопасным методом является использование файла полномочий. Например, создайте файл и выполните команду chmod 600 *имя_файла*, в результате чего только пользователь-владелец файла сможет читать и писать в него. Файл должен содержать следующую информацию:

/путь/к/полномочиям/sambacreds

username=*имя_пользователя*
password=*пароль*

а запись в вашем fstab должна выглядеть примерно так:

/etc/fstab //СЕРВЕР/ИМЯ_РЕСУРСА /mnt/*точка_монтирования* cifs credentials=*/путь/к/полномочиям/sambacreds* 0 0

При использовании systemd (современные установки) можно использовать опцию comment=systemd.automount, которая увеличивает скорость загрузки сервиса на несколько секунд. Также можно указать текущего пользователя и группу, чтобы сделать жизнь немного проще, используя опции uid и gid.

Важно: Использование опций uid и gid может вызвать ошибки ввода-вывода в программах, пытающихся получить данные с сетевых устройств
/etc/fstab //*СЕРВЕР*/*ИМЯ_РЕСУРСА* /mnt/*точка_монтирования* cifs credentials=*/путь/к/полномочиям*,comment=systemd.automount,uid=*имя_пользователя*,gid=*группа_пользователя* 0 0
Примечание: Пробелы в именах ресурсов должны быть заменены на 40 (восьмеричный ASCII-код для пробелов). Например, //*СЕРВЕР*/имя ресурса должно быть заменено на //*СЕРВЕР*/имя40ресурса в /etc/fstab

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

/etc/fstab //*СЕРВЕР*/*ИМЯ_РЕСУРСА* /mnt/*точка_монтирования* cifs users,credentials=*/путь/к/полномочиям*,workgroup=*рабочая_группа*,ip=*IP_сервера* 0 0
Примечание: Необходимо писать users (во множественном числе). Для других типов файловых систем, обрабатываемых командой mount, эта опция обычно имеет вид user, без «s«

Это позволит пользователям монтировать ресурс, если точка монтирования находится в каталоге, владельцами которого они являются, например, в свою домашнюю директорию. Чтобы пользователи могли монтировать и размонтировать ресурсы Samba в точках монтирования, владельцами которых они не являются, используйте smbnetfs или дайте им необходимые привилегии с помощью sudo.

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

Пакет smbclient предоставляет драйвер для использования имен хостов WINS. Чтобы его включить, добавьте “wins” в строку “hosts” файла /etc/nsswitch.conf.

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

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

smbnetfs

Примечание: для smbnetfs необходима целая (нетронутая?) (intact) установка сервера Samba. Смотрите выше, как это сделать

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

$ smbtree -U *удаленный_пользователь*

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

Теперь перезапустите службы smbd.service и nmbd.service.

Если все работает, как и ожидалось, установите пакет smbnetfs из официальных репозиториев.

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

и загрузите модуль ядра fuse:

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

$ cp -a /etc/smbnetfs/.smb ~

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

$ ln -sf /etc/samba/smb.conf ~/.smb/smb.conf

Если для доступа к некоторым общим каталогам необходимы имя пользователя и пароль, отредактируйте файл ~/.smb/smbnetfs.auth, включив одну или несколько записей, как эта:

~/.smb/smbnetfs.auth

auth			"hostname" "имя_пользователя" "пароль"

Также возможно добавление записей для специфичных хостов, чтобы они были примонтированы smbnetfs, если это необходимо. Больше информации можно найти в ~/.smb/smbnetfs.conf.

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

$ chmod 600 ~/.smb/smbnetfs.*

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

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

$ smbnetfs *точка_монтирования*

Демон

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

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

autofs

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

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

Nautilus, Nemo, Thunar и PCManFM

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

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

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

KDE

KDE имеет встроенную возможность просмотра ресурсов Samba, в этом случае нет необходимости в дополнительных пакетах. Однако, для графического интерфейса в Системных Настройках KDE установите пакет kdenetwork-filesharing из официальных репозиториев.

Если при использовании Dolphin вы получите ошибку «Time Out», необходимо раскомментировать и отредактировать эту строку в файле smb.conf: name resolve order = lmhosts bcast host wins

как показано на этой странице.

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

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

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

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

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

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

  • HKLMSYSTEMCurrentControlSetControlSession ManagerMemory ManagementLargeSystemCache (установить значение 1)
  • HKLMSYSTEMCurrentControlSetServicesLanmanServerParametersSize (установить значение 3)

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

reg add "HKLMSYSTEMCurrentControlSetControlSession ManagerMemory Management" /v "LargeSystemCache" /t REG_DWORD /d 1 /f
reg add "HKLMSYSTEMCurrentControlSetServicesLanmanServerParameters" /v "Size" /t REG_DWORD /d 3 /f

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

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

Примечание: Поиск решения в интернете подскажет другое решение, рекомендующее пользователям добавить ключ, изменяющий размер «IRPStackSize». Это неправильное решение для устранения проблемы в Windows 7. Не применяйте его

Исходная статья.

Проблемы получения доступа к ресурсам, защищенным паролем, из Windows

При проблемах получения доступа к ресурсам, защищенным паролем, из Windows попробуйте добавить следующее в файл /etc/samba/smb.conf:[1]

Обратите внимание, что это должно быть добавлено в локальный файл smb.conf, а не в файл сервера

[global]
# lanman fix
client lanman auth = yes
client ntlmv2 auth = no

Диалоговое окно появляется с большой задержкой

У меня была проблема, связанная с тем, что диалоговое окно для ввода пароля появлялось с задержкой около 30 секунд, когда я пытался установить соединение из Windows XP/Windows 7. Когда я посмотрел файл error.log на сервере, я увидел:

[2009/11/11 06:20:12,  0] printing/print_cups.c:cups_connect(103)
Unable to connect to CUPS server localhost:631 - Interrupted system call

Эта опция предотвращает поиск cups и файла /etc/printcap:

printing = bsd
printcap name = /dev/null

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

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

load printers = No
printing = bsd
printcap name = /dev/null
disable spoolss = Yes

Перезапустите samba:

systemctl restart smbd

…проверьте ваши логи:

cat /var/log/samba/smbd.log

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

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

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

‘net usershare’ returned error 255: net usershare: usershares are currently disabled

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

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

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

iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns

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

Вы не являетесь владельцем каталога

Попробуйте просто перезагрузить систему.

protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE

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

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

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

Смотрите также

  • Samba: An Introduction
  • Официальный сайт Samba

Больше информации

  • Samba Samba (German) (archlinux.de)
  • Ускорение работы Samba

Содержание

  1. Thread: Network Connection has failed
  2. Network Connection has failed
  3. Re: Network Connection has failed
  4. Re: Network Connection has failed
  5. Re: Network Connection has failed
  6. Re: Network Connection has failed
  7. Re: Network Connection has failed
  8. Re: Network Connection has failed
  9. Re: Network Connection has failed
  10. Re: Network Connection has failed
  11. Samba
  12. Server
  13. Installation
  14. Enabling and starting services
  15. Make the server discoverable
  16. Configure firewall
  17. Basic configuration
  18. User management
  19. Creating an anonymous share
  20. Advanced configuration
  21. Enable symlink following
  22. Enable server-side copy for macOS clients
  23. Enable Usershares
  24. Set and forcing permissions
  25. Restrict protocols for better security
  26. Use native SMB transport encryption
  27. Disable printer sharing
  28. Block certain file extensions on Samba share
  29. Improve throughput
  30. Enable access for old clients/devices
  31. Enable Spotlight searching
  32. Client
  33. List public shares
  34. NetBIOS/WINS host names
  35. Disable NetBIOS/WINS support
  36. Manual mounting
  37. Storing share passwords
  38. Automatic mounting
  39. Using NetworkManager and GIO/gvfs
  40. As mount entry
  41. As systemd unit
  42. smbnetfs
  43. autofs
  44. File manager configuration
  45. GNOME Files, Nemo, Caja, Thunar and PCManFM
  46. Other graphical environments
  47. Tips and tricks
  48. Discovering network shares
  49. Remote control of Windows computer
  50. Troubleshooting
  51. Failed to start Samba SMB/CIFS server
  52. Permission issues on SELinux
  53. Permission issues on AppArmor
  54. No dialect specified on mount
  55. Unable to overwrite files, permissions errors
  56. Windows clients keep asking for password even if Samba shares are created with guest permissions
  57. Windows 7 connectivity problems — mount error(12): cannot allocate memory
  58. Windows 10 1709 and up connectivity problems — «Windows cannot access» 0x80004005
  59. Error: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
  60. Sharing a folder fails
  61. «Browsing» network fails with «Failed to retrieve share list from server»
  62. Protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
  63. Connection to SERVER failed: (Error NT_STATUS_UNSUCCESSFUL)
  64. Connection to SERVER failed: (Error NT_STATUS_CONNECTION_REFUSED)
  65. Protocol negotiation failed: NT_STATUS_CONNECTION_RESET
  66. Password Error when correct credentials are given (error 1326)
  67. Mapping reserved Windows characters
  68. Folder shared inside graphical environment is not available to guests
  69. Verify correct samba configuration
  70. Verify correct shared folder creation
  71. Verify folder access by guest
  72. Mount error: Host is down
  73. Software caused connection abort
  74. Connection problem (due to authentification error)
  75. Windows 1709 or up does not discover the samba server in Network view
  76. IOS Files can no longer copy-to Samba share on Arch Linux beginning with IOS 14.5

Thread: Network Connection has failed

Thread Tools
Display

Network Connection has failed

I installed Ubuntu 10.4 side by side with my Vista. This is on a PC I leave on permanently and use as a sort of Sever, so Security and Network connection are VERY important on this device.

I use it for documents and IP PBX (telephone system). I currently use Vista and 3CX, but I plan to roll it over to Unbuntu full time once its up and runnng correctly — I will just need to change the Grub2 conf priority.

After install, all was fine and I managed to make many changes to settings, apps and updates, but I have noticed in the past week when going in to make further changes the network has suddenly stopped working! According to Network Manager and the icon on the panel it is connected and I can not see anything obvious that is not correct. I tried doing a PING (192.168.1.1) from Network Manager to the main router, but it failed.

I know that there is nothing wrong with the network nor the card or PC it all sits on. It’s working now with Vista and my other machines. It must be a config some-where.

Can anyone help me please.

Re: Network Connection has failed

Since you asked for my help in someone else’s thread I’ll respond here. The reason no one’s responding to this post is probably the reference to PBX and 3CX. I for one know nothing of these so I’m afraid I can’t be of any help. You did post this output of smbtree in that other post:

$ smbtree
Enter jonathan’s password:
WORKGROUP
JONATHANECHIARA
\SERVER server
cli_start_connection: failed to connect to SERVER (0.0.0.0). Error NT_STATUS_BAD_NETWORK_NAME
\LOCALHOST Vigor 2820 Samba Server
\LOCALHOSTmusic
\LOCALHOSTdcim
\LOCALHOSTshare
\LOCALHOSTdocuments
\LOCALHOSTvideos
\LOCALHOSTdesktop
\LOCALHOSTpictures
\LOCALHOSTIPC$ IPC Service (jonathan-laptop server (Samba, Ubuntu))
\LOCALHOSTprint$ Printer Drivers
\JONATHAN-LAPTOP jonathan-laptop server (Samba, Ubuntu)
\JONATHAN-LAPTOPmusic
\JONATHAN-LAPTOPdcim
\JONATHAN-LAPTOPshare
\JONATHAN-LAPTOPdocuments
\JONATHAN-LAPTOPvideos
\JONATHAN-LAPTOPdesktop
\JONATHAN-LAPTOPpictures
\JONATHAN-LAPTOPIPC$ IPC Service (jonathan-laptop server (Samba, Ubuntu))
\JONATHAN-LAPTOPprint$ Printer Drivers
\CHIARAPC Chiara’sPC
cli_start_connection: failed to connect to CHIARAPC (0.0.0.0). Error NT_STATUS_UNSUCCESSFUL

Samba itself has no clue what’s wrong and neither do I.

Sorry I could not be of any help.

Re: Network Connection has failed

Thanks Morbius1
Not sure why the PBX/3CX is a problem for people picking up, I was just trying to explain what I use the PC for, not for help with these. The issue is that «server» does not connect to the network.

The report you are referring too was in fact a different machine. It is my Laptop which was working at the start of the thread, then suddenly stopped, so I fed back my smbtree and other info to get a quick fix there. It was related as you will note they (the originator) are BOTH with the same problem and BOTH are Toshiba Laptops. It did get up and running again, as per my follow on note when I did the things you suggested to the smb.conf file. I also do not understand why I have «Localhost». I did not create it, it just appeared. It is in fact the DSL router.

Getting back to the point: The PC this Thread is about is called «server» as that is how we use it. I have created a report this AM (I shut down Vista and re booted in to Ubuntu and then ran the commands you suggested to create the reports, and then rebooted back in to Vista before going out — I need to past the results in here).

As for name length, «server» is the name of the central PC and the other one is «ChiaraPC» (my wife’s). Neither has odd characters or are over 15 ch long, so I am confused.

As I have mentioned in the other thread, this is very flaky, and I have found the NT Status message comes and goes. I have to try repeatedly to connect to any devices or the LAN and sometimes it works first click. Any way, That’s not the point. This machine to which I refer «server», does not see the LAN, even though it says it is connected. If I run it in Vista, it works fine. I want to move away from Windows, so I need to fix this problem.

Reports to follow.

So any leads are welcome, please.

Re: Network Connection has failed

I have just found that I can find the «server» PC from my other PCs, but the «server» PC itself can not see the outside world nor can it see the other PCs on my LAN.

Can anyone help me please?

Re: Network Connection has failed

Check route -n
I presume the machine has an address in the 192.168.1.X subnet.
(Check via ifconfig -a)

Re: Network Connection has failed

OK, I am not quite sure what all this means, but I do not think it is correct. My Gateway and DNS are 192.168.1.1 DNS is also 4.2.2.2, 4.2.2.3

[HTML] root@server:/home/server# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:1f:d0:58:4c:2b
inet addr:192.168.1.50 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21f:d0ff:fe58:4c2b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:117 errors:0 dropped:0 overruns:0 frame:0
TX packets:105 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:36709 (36.7 KB) TX bytes:23417 (23.4 KB)
Interrupt:23 Base address:0x2000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3745 errors:0 dropped:0 overruns:0 frame:0
TX packets:3745 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:278638 (278.6 KB) TX bytes:278638 (278.6 KB)

Again not sure what this is about, but it looks OK. In terms of what works in Vista, the gateway is 192.168.1.1 The DNS is 192.168.1..1, 4.2.2.2, 4.2.2.3 and one other. This may explain why when I boot up Firefox, I get no access to the outside world. I, also, can not log in to any device via Firefox on the LAN including the router and other LAN devices.

I also can not find any device via «connect to Server» or «Network», yet other PCs and Laptops can see it.

Hope this helps. Please let me know if there is anything else you need to know or things you need me to do.

Last edited by Jonners59; July 8th, 2010 at 10:08 PM .

Re: Network Connection has failed


Hmmm.
ifconfig results look OK — machine has address in subnet.
route shows gateway as 192.168.1.1.
I presume right-clicking Network Manager icon shows Networking enabled (or the other configuration probably wouldn’t have happened.)
cat /etc/resolv.conf should show your DNS nameservers. but even without them, you should be able to ping 192.168.1.1 (unless there are some firewall rules in place that are doing odd things).

Re: Network Connection has failed

Yes. It would have made it easier!

I’m not a techie, and I am lost completely. It did work to start with, otherwise I could not have installed and got the first updates. It seemed to have stopped (if the Update Manager is to go by) about 40 odd days ago when it did its last update. I only go into the PC from time to time to work on it because it is disruptive (holds the telephone system and all the family docs etc).

I will try today. I have to copy and past your comments on a document and save it on one of the media/directories on the PC via another machine (this laptop), and then go into the PC and reboot into Ubuntu (it’s currently running on Vista), retrieve and run the tests — it gets messy.

Is the Kernal routing table correct. I mean the Destination should be 192.168.1.1 and so should the Gateway.

But that is also the point. It did work and it works on Vista, so the cards (MAC Address) and the IP Address are accepted by the router. What else could there be.

Last edited by Jonners59; July 9th, 2010 at 07:59 AM .

Re: Network Connection has failed

This is the out put.

root@server:/home/server# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.1
nameserver 4.2.2.2
nameserver 4.2.2.3
root@server:/home/server#

It works perfectly in Vista! And other machines can find it whether Vista or Ubuntu.

Here are the same tests off another machine connected to the same router via Ethernet that DOES work. They are similar, but not the same. Does this mean anything?

$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
baronipc@baronipc:

$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:14:85:26:9c:03
inet addr:192.168.1.62 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::214:85ff:fe26:9c03/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:310910 errors:0 dropped:0 overruns:0 frame:0
TX packets:256972 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:101172418 (101.1 MB) TX bytes:34243840 (34.2 MB)
Interrupt:19

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:81915 errors:0 dropped:0 overruns:0 frame:0
TX packets:81915 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:19724800 (19.7 MB) TX bytes:19724800 (19.7 MB)

pan0 Link encap:Ethernet HWaddr b6:2c:af:ff:81:a7
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 4.2.2.2
nameserver 208.67.220.220
baronipc@baronipc:

Last edited by Jonners59; July 9th, 2010 at 03:04 PM .

Источник

Samba

Samba is the standard Windows interoperability suite of programs for Linux and Unix. Since 1992, Samba has provided secure, stable and fast file and print services for all clients using the SMB/CIFS protocol, such as all versions of DOS and Windows, OS/2, Linux and many others.

To share files through Samba, see #Server section; to access files shared through Samba on other machines, please see #Client section.

Server

Installation

Samba is configured in the /etc/samba/smb.conf configuration file, which is extensively documented in smb.conf(5) .

Because the samba package does not provide this file, one needs to create it before starting smb.service .

A documented example as in smb.conf.default from the Samba git repository may be used to setup /etc/samba/smb.conf .

Enabling and starting services

To provide basic file sharing through SMB, enable/start smb.service . See smbd(8) for details.

If you want to make your server accessible via NetBIOS host name, set the desired name in the netbios name option in smb.conf and enable/start nmb.service . See nmbd(8) for details.

Make the server discoverable

Install the avahi package, then enable/start avahi-daemon.service to make the samba server discoverable with Zeroconf. It should work for most non-Windows file managers (macOS Finder, various GUI-based file managers on Linux & BSD etc.)

If avahi-daemon.service is not running, the server will still be accessible, just not discoverable, i.e. it will not show up in file managers, but you can still connect to the server directly by IP or domain.

Windows Explorer relies on the WS-Discovery protocol instead; see #Windows 1709 or up does not discover the samba server in Network view.

Configure firewall

If you are using a firewall, do not forget to open required ports (usually 137-139 + 445). For a complete list, see Samba port usage.

UFW Rule

A Ufw App Profile for SMB/CIFS is included by default with the default installation of UFW in ufw-fileserver .

Allow Samba by running ufw allow CIFS as root.

If you deleted the profile, create/edit /etc/ufw/applications.d/samba and add the following content:

Then load the profile into UFW run ufw app update Samba as root.

Then finally, allow Samba by running ufw allow Samba as root.

firewalld service

To configure firewalld to allow Samba in the home zone, run:

The three services listed are:

  • samba : for sharing files with others.
  • samba-client : to browse shares on other machines on the network.
  • samba-dc : for Samba/Active Directory domain controller.

—permanent ensures the changes remain after firewalld.service is restarted.

Basic configuration

User management

The following section describes creating a local (tdbsam) database of Samba users. For user authentication and other purposes, Samba can also be bound to an Active Directory domain, can itself serve as an Active Directory domain controller, or can be used with an LDAP server.

Adding a user

Samba requires a Linux user account — you may use an existing user account or create a new one.

Although the user name is shared with Linux system, Samba uses a password separate from that of the Linux user accounts. Replace samba_user with the chosen Samba user account:

Depending on the server role, existing File permissions and attributes may need to be altered for the Samba user account.

If you want the new user only to be allowed to remotely access the file server shares through Samba, you can restrict other login options:

  • disabling shell — usermod —shell /usr/bin/nologin —lock samba_user
  • disabling SSH logons — edit /etc/ssh/sshd_config , change option AllowUsers

Also see Security for hardening your system.

Listing users

Samba users can be listed using the pdbedit(8) command:

Changing user password

To change a user password, use smbpasswd :

1. Create a Linux user which anonymous Samba users will be mapped to.

2. Add the following to /etc/samba/smb.conf :

Anonymous users will now be mapped to the Linux user guest and have the ability to access any directories defined in guest_share.path , which is configured to be /tmp/ in the example above.

Make sure that the Linux user guest has the proper permissions to access files in guest_share.path .

Also, make sure shares have been properly defined as per the Share Definitions section of smb.conf.default.

Advanced configuration

Enable symlink following

Enable server-side copy for macOS clients

Server-side copy eliminates the need to transfer data between the server and the client when copying files on the server. This is enabled by default, but it doesn’t work with macOS clients. If you have macOS clients, you need to add the following configuration to smb.conf and then restart smb.service .

Enable Usershares

Usershares is a feature that gives non-root users the capability to add, modify, and delete their own share definitions. See smb.conf(5) § USERSHARES .

  1. Create a directory for usershares:
  2. Create a user group:
  3. Change the owner of the directory to root and the group to sambashare :
  4. Change the permissions of the usershares directory so that users in the group sambashare can create files. This command also sets sticky bit, which is important to prevent users from deleting usershares of other users:

Set the following parameters in the smb.conf configuration file:

Add the user to the sambashare group. Replace your_username with the name of your user:

Restart smb.service and nmb.service services.

Log out and log back in.

If you want to share paths inside your home directory you must make it accessible for the group others.

The factual accuracy of this article or section is disputed.

In the GUI, you can use Thunar or Dolphin — right click on any directory and share it on the network.

In the CLI, use one of the following commands, replacing italic sharename, user, . :

Set and forcing permissions

Permissions may be applied to both the server and shares:

See smb.conf(5) for a full overview of possible permission flags and settings.

Restrict protocols for better security

Append server min protocol and server max protocol in /etc/samba/smb.conf to force usage of a minimum and maximum protocol:

See server max protocol in smb.conf(5) for an overview of supported protocols.

For compatibility with older clients and/or servers, you might need to set client min protocol = CORE or server min protocol = CORE , but please note that this makes you vulnerable to exploits in SMB1 including ransomware attacks.

Clients using mount.cifs may need to specify the correct vers=* , e.g.:

See mount.cifs(8) for more information.

Use native SMB transport encryption

Native SMB transport encryption is available in SMB version 3.0 or newer. Clients supporting this type of encryption include Windows 8 and newer, Windows server 2012 and newer, and smbclient of Samba 4.1 and newer.

To use native SMB transport encryption by default, set the server smb encrypt parameter globally and/or by share. Possible values are off , enabled (default value), desired , or required :

To configure encryption for on the client side, use the option client smb encrypt .

See smb.conf(5) for more information, especially the paragraphs Effects for SMB1 and Effects for SMB2.

Disable printer sharing

By default Samba shares printers configured using CUPS.

If you do not want printers to be shared, use the following settings:

Samba offers an option to block files with certain patterns, like file extensions. This option can be used to prevent dissemination of viruses or to dissuade users from wasting space with certain files. More information about this option can be found in smb.conf(5) .

Improve throughput

The default settings should be sufficient for most users. However setting the ‘socket options’ correct can improve performance, but getting them wrong can degrade it by just as much. Test the effect before making any large changes.

Read the smb.conf(5) man page before applying any of the options listed below.

The following settings should be appended to the [global] section of /etc/samba/smb.conf .

Setting a deadtime is useful to stop a server’s resources from being exhausted by a large number of inactive connections:

The usage of sendfile may make more efficient use of the system CPU’s and cause Samba to be faster:

Setting min receivefile size allows zero-copy writes directly from network socket buffers into the filesystem buffer cache (if available). It may improve performance but user testing is recommended:

Increasing the receive/send buffers size and socket optimize flags might be useful to improve throughput. It is recommended to test each flag separately as it may cause issues on some networks:

Enable access for old clients/devices

Latest versions of Samba no longer offer older authentication methods and protocols which are still used by some older clients (IP cameras, etc). These devices usually require Samba server to allow NTMLv1 authentication and NT1 version of the protocol, known as CIFS. For these devices to work with latest Samba, you need to add these two configuration parameters into [global] section:

Anonymous/guest access to a share requires just the first parameter. If the old device will access with username and password, you also need the add the second line too.

Enable Spotlight searching

Spotlight allows supporting clients (e.g. MacOS Finder) to quickly search shared files.

Install and start/enable OpenSearch. Install fs2es-indexer AUR , configure the directories you want to index in /etc/fs2es-indexer/config.yml , and start/enable fs2es-indexer.service for periodic indexing.

Edit smb.conf as described in the Samba wiki to enable Spotlight per share, and restart smb.service to apply the changes.

Client

Install smbclient for an ftp -like command line interface. See smbclient(1) for commonly used commands.

For a lightweight alternative (without support for listing public shares, etc.), install cifs-utils that provides /usr/bin/mount.cifs .

Depending on the desktop environment, GUI methods may be available. See #File manager configuration for use with a file manager.

List public shares

The following command lists public shares on a server:

Alternatively, running $ smbtree -N will show a tree diagram of all the shares. It uses broadcast queries and is therefore not advisable on a network with a lot of computers, but can be helpful for diagnosing if you have the correct sharename. The -N ( -no-pass ) option suppresses the password prompt.

NetBIOS/WINS host names

Samba clients handle NetBIOS host names automatically by default (the behavior is controlled by the name resolve order option in smb.conf ). Other programs (including mount.cifs ) typically use Name Service Switch, which does not handle NetBIOS by default.

The smbclient package provides a libnss driver to resolve NetBIOS host names. To use it, install it along with the samba package (which provides the winbindd daemon), start/enable winbind.service and add wins to the hosts line in nsswitch.conf(5) :

Now, during host resolving (e.g. when using mount.cifs or just ping netbios-name ), winbindd will resolve the host name by sending queries using NetBIOS Name Service (NBNS, also known as WINS) protocol.

By default it sends a broadcast query to your local network. If you have a WINS server, you can add wins server = wins-server-ip to smb.conf and restart winbind.service , then winbindd and other Samba clients will send unicast queries to the specified IP.

If you want to resolve your local host name (specified in the netbios name option in smb.conf ), start/enable nmb.service , which will handle incoming queries.

You can test WINS resolution with nmblookup . By default it sends broadcast queries to your local network regardless of the wins server option.

Note that WINS resolution requires incoming traffic originating from port 137.

Disable NetBIOS/WINS support

When not using NetBIOS/WINS host name resolution, it may be preferred to disable this protocol:

Manual mounting

Mount the share using mount.cifs as type . Not all the options listed below are needed or desirable:

The options uid and gid corresponds to the local (e.g. client) user/user group to have read/write access on the given path.

  • SERVER — The server name.
  • sharename — The shared directory.
  • mountpoint — The local directory where the share will be mounted.
  • [-o options] — See mount.cifs(8) for more information.

Storing passwords in a world readable file is not recommended. A safer method is to use a credentials file instead, e.g. inside /etc/samba/credentials :

For the mount command replace username=myuser,password=mypass with credentials=/etc/samba/credentials/share .

The credential file should explicitly readable/writeable to root:

Automatic mounting

Using NetworkManager and GIO/gvfs

NetworkManager can be configured to run a script on network status change. This script uses the gio command so that it mounts the Samba shares automatically, the same way your file manager does, as explained below. The script also safely unmounts the Samba shares before the relevant network connection is disabled by listening for the pre-down and vpn-pre-down events. Make the script is executable after creating it.

Create a symlink inside /etc/NetworkManager/dispatcher.d/pre-down to catch the pre-down events:

As mount entry

This is a simple example of a cifs mount entry that requires authentication:

As systemd unit

Create a new .mount file inside /etc/systemd/system , e.g. mnt-myshare.mount . See systemd.mount(5) for details.

What= path to share

Where= path to mount the share

Options= share mounting options

To use mnt-myshare.mount , start the unit and enable it to run on system boot.

automount

To automatically mount a share (when accessed, like autofs), one may use the following automount unit:

Disable/stop the mnt-myshare.mount unit, and enable/start mnt-myshare.automount to automount the share when the mount path is being accessed.

smbnetfs

First, check if you can see all the shares you are interested in mounting:

If that does not work, find and modify the following line in /etc/samba/smb.conf accordingly:

Now restart smb.service and nmb.service .

If everything works as expected, install smbnetfs .

Then, add the following line to /etc/fuse.conf :

Now copy the directory /etc/smbnetfs/.smb to your home directory:

Then create a link to smb.conf :

If a username and a password are required to access some of the shared folders, edit

/.smb/smbnetfs.auth to include one or more entries like this:

It is also possible to add entries for specific hosts to be mounted by smbnetfs, if necessary. More details can be found in

If you are using the Dolphin or GNOME Files, you may want to add the following to

/.smb/smbnetfs.conf to avoid «Disk full» errors as smbnetfs by default will report 0 bytes of free space:

When you are done with the configuration, you need to run

Otherwise, smbnetfs complains about ‘insecure config file permissions’.

Finally, to mount your Samba network neighbourhood to a directory of your choice, call

Daemon

The Arch Linux package also maintains an additional system-wide operation mode for smbnetfs. To enable it, you need to make the said modifications in the directory /etc/smbnetfs/.smb .

Then, you can start and/or enable the smbnetfs daemon as usual. The system-wide mount point is at /mnt/smbnet/ .

autofs

See Autofs for information on the kernel-based automounter for Linux.

File manager configuration

GNOME Files, Nemo, Caja, Thunar and PCManFM

In order to access samba shares through GNOME Files, Nemo, Caja, Thunar or PCManFM, install the gvfs-smb package.

Press Ctrl+l and enter smb://servername/share in the location bar to access your share.

The mounted share is likely to be present at /run/user/your_UID/gvfs or

/.gvfs in the filesystem.

KDE applications (like Dolphin) has the ability to browse Samba shares built in. Use the path smb://servername/share to browse the files. If you want to access files from on non-KDE application, you can install kio-fuse .

To use a GUI in the KDE System Settings, you will need to install the kdenetwork-filesharing package.

Other graphical environments

There are a number of useful programs, but they may need to have packages created for them. This can be done with the Arch package build system. The good thing about these others is that they do not require a particular environment to be installed to support them, and so they bring along less baggage.

  • pyneighborhoodAUR
  • LinNeighborhood, RUmba, xffm-samba plugin for Xffm are not available in the official repositories or the AUR. As they are not officially (or even unofficially supported), they may be obsolete and may not work at all.

Tips and tricks

Discovering network shares

If nothing is known about other systems on the local network, and automated tools such as smbnetfs are not available, you can manually probe for Samba shares.

First, install the nmap and smbclient packages.

Use nmap to scan your local network to find systems with TCP port 445 open, which is the port used by the SMB protocol. Note that you may need to use -Pn or set a custom ping scan type (e.g. -PS445 ) because Windows systems are usually firewalled.

The first result is another system; the second happens to be the client from where this scan was performed.

Now you can connect to there IP addresses directly, but if you want to use NetBIOS host names, you can use nmblookup(1) to check for NetBIOS names. Note that this will not work if NetBIOS is disabled on the server.

Regardless of the output, look for , which shows the host with open services.

Use smbclient(1) to list which services are shared on these systems. You can use NetBIOS host name ( PUTER in this example) instead of IP when available. If prompted for a password, pressing enter should still display the list:

Remote control of Windows computer

Samba offers a set of tools for communication with Windows. These can be handy if access to a Windows computer through remote desktop is not an option, as shown by some examples.

Send shutdown command with a comment:

A forced shutdown instead can be invoked by changing -C with comment to a single -f. For a restart, only add -r, followed by a -C or -f.

Stop and start services:

To see all possible net rpc command:

Troubleshooting

Failed to start Samba SMB/CIFS server

  • Check smb.conf on syntactic errors with testparm(1) .
  • Set correct permissions for /var/cache/samba/ and restart smb.service :

Permission issues on SELinux

SELinux not allow samba to access user home directories by default, to solve this, run:

Similarly, samba_export_all_ro and samba_export_all_rw make Samba has the ability to read or «read and write» all files.

Permission issues on AppArmor

If using a share path located outside of a home or usershares directory, whitelist it in /etc/apparmor.d/local/usr.sbin.smbd . E.g.:

No dialect specified on mount

The client is using an unsupported SMB/CIFS version that is required by the server.

Unable to overwrite files, permissions errors

The factual accuracy of this article or section is disputed.

  • Append the mount option nodfs to the /etc/fstab entry.
  • Add msdfs root = no to the [global] section of the server’s /etc/samba/smb.conf .

Windows clients keep asking for password even if Samba shares are created with guest permissions

Set map to guest inside the global section of /etc/samba/smb.conf :

If you are still using Samba Bad User instead of Bad Password .

Windows 7 connectivity problems — mount error(12): cannot allocate memory

A known Windows 7 bug that causes «mount error(12): cannot allocate memory» on an otherwise perfect cifs share on the Linux end can be fixed by setting a few registry keys on the Windows box as follows:

  • HKLMSYSTEMCurrentControlSetControlSession ManagerMemory ManagementLargeSystemCache (set to 1 )
  • HKLMSYSTEMCurrentControlSetServicesLanmanServerParametersSize (set to 3 )

Alternatively, start Command Prompt in Admin Mode and execute the following:

Do one of the following for the settings to take effect:

  • Restart Windows
  • Restart the Server service via services.msc
  • From the Command Prompt run: ‘net stop lanmanserver’ and ‘net start lanmanserver’ — The server may automatically restart after stopping it.

Windows 10 1709 and up connectivity problems — «Windows cannot access» 0x80004005

This error affects some machines running Windows 10 version 1709 and later. It is not related to SMB1 being disabled in this version but to the fact that Microsoft disabled insecure logons for guests on this version for some, but not others.

To fix, open Group Policy Editor ( gpedit.msc ). Navigate to Computer configurationadministrative templatesnetworkLanman Workstation > Enable insecure guest logons and enable it. Alternatively,change the following value in the registry:

Error: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL

If you are a home user and using samba purely for file sharing from a server or NAS, you are probably not interested in sharing printers through it. If so, you can prevent this error from occurring by adding the following lines to your /etc/samba/smb.conf :

Restart the samba service, smb.service , and then check your logs:

and the error should now no longer be appearing.

Sharing a folder fails

It means that while you are sharing a folder from Dolphin (file manager) and everything seems ok at first, after restarting Dolphin the share icon is gone from the shared folder, and also some output like this in terminal (Konsole) output:

To fix it, enable usershare as described in #Enable Usershares.

«Browsing» network fails with «Failed to retrieve share list from server»

And you are using a firewall (iptables) because you do not trust your local (school, university, hotel) network. This may be due to the following: When the smbclient is browsing the local network it sends out a broadcast request on udp port 137. The servers on the network then reply to your client but as the source address of this reply is different from the destination address iptables saw when sending the request for the listing out, iptables will not recognize the reply as being «ESTABLISHED» or «RELATED», and hence the packet is dropped. A possible solution is to add:

to your iptables setup.

For Uncomplicated Firewall, you need to add nf_conntrack_netbios_ns to the end of the following line in /etc/default/ufw

and then run the following commands as root:

To make this change persistent across reboots, add the following line at the end of /etc/ufw/sysctl.conf :

Protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE

The client probably does not have access to shares. Make sure clients’ IP address is in hosts allow = line in /etc/samba/smb.conf .

Another problem could be, that the client uses an invalid protocol version. To check this try to connect with the smbclient where you specify the maximum protocol version manually:

If the command was successful then create a configuration file:

Connection to SERVER failed: (Error NT_STATUS_UNSUCCESSFUL)

You are probably passing a wrong server name to smbclient . To find out the server name, run hostnamectl on the server and look at «Transient hostname» line

Connection to SERVER failed: (Error NT_STATUS_CONNECTION_REFUSED)

Make sure that the server has started. The shared directories should exist and be accessible.

Protocol negotiation failed: NT_STATUS_CONNECTION_RESET

Probably the server is configured not to accept protocol SMB1. Add option client max protocol = SMB2 in /etc/samba/smb.conf . Or just pass argument -m SMB2 to smbclient .

Password Error when correct credentials are given (error 1326)

Samba 4.5 has NTLMv1 authentication disabled by default. It is recommend to install the latest available upgrades on clients and deny access for unsupported clients.

If you still need support for very old clients without NTLMv2 support (e.g. Windows XP), it is possible force enable NTLMv1, although this is not recommend for security reasons:

If NTLMv2 clients are unable to authenticate when NTLMv1 has been enabled, create the following file on the client:

This change also affects samba shares mounted with mount.cifs. If after upgrade to Samba 4.5 your mount fails, add the sec=ntlmssp option to your mount command, e.g.

See the mount.cifs(8) man page: ntlmssp — Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message. The default in mainline kernel versions prior to v3.8 was sec=ntlm. In v3.8, the default was changed to sec=ntlmssp.

Mapping reserved Windows characters

Starting with kernel 3.18, the cifs module uses the «mapposix» option by default. When mounting a share using unix extensions and a default Samba configuration, files and directories containing one of the seven reserved Windows characters : * ? are listed but cannot be accessed.

Possible solutions are:

  • Use the undocumented nomapposix mount option for cifs
  • Configure Samba to remap mapposix («SFM», Services for Mac) style characters to the correct native ones using fruit
  • Manually remap forbidden characters using catia

The latter approach (using catia or fruit) has the drawback of filtering files with unprintable characters.

Folder shared inside graphical environment is not available to guests

This section presupposes:

  1. Usershares are configured following previous section
  2. A shared folder has been created as a non-root user from GUI
  3. Guests access has been set to shared folder during creation
  4. Samba service has been restarted at least once since last /etc/samba/smb.conf file modification

For clarification purpose only, in the following sub-sections is assumed:

  • Shared folder is located inside user home directory path ( /home/yourUser/Shared )
  • Shared folder name is MySharedFiles
  • Guest access is read-only.
  • Windows users will access shared folder content without login prompt

Verify correct samba configuration

Run the following command from a terminal to test configuration file correctness:

Verify correct shared folder creation

Run the following commands from a terminal:

If everything is fine, you will notice a file named mysharedfiles

Read the file contents using the following command:

The terminal output should display something like this:

Verify folder access by guest

Run the following command from a terminal. If prompted for a password, just press Enter:

If everything is fine, MySharedFiles should be displayed under Sharename column

Run the following command in order to access the shared folder as guest (anonymous login)

If everything is fine samba client prompt will be displayed:

From samba prompt verify guest can list directory contents:

If the NTFS_STATUS_ACCESS_DENIED error is displayed, the issue is likely to be with Unix directory permissions. Ensure that your samba user has access to the folder and all parent folders. You can test this by sudoing to the user and attempting to list the mount directory, and all of its parents.

Mount error: Host is down

This error might be seen when mounting shares of Synology NAS servers. Use the mount option vers=1.0 to solve it.

Software caused connection abort

File managers that utilizes gvfs-smb can show the error Software caused connection abort when writing a file to a share/server. This may be due to the server running SMB/CIFS version 1, which many routers use for USB drive sharing (e.g. Belkin routers). To write to these shares specify the CIFS version with the option vers=1.0 . E.g.:

This can also happen after updating Samba to version 4.11, which deactivates SMB1 as default, and accessing any Samba share. You can reenable it by adding

Connection problem (due to authentification error)

Be sure that you do not leave any space characters before your username in Samba client configuration file as follows:

The correct format is:

Windows 1709 or up does not discover the samba server in Network view

With Windows 10 version 1511, support for SMBv1 and thus NetBIOS device discovery was disabled by default. Depending on the actual edition, later versions of Windows starting from version 1709 («Fall Creators Update») do not allow the installation of the SMBv1 client anymore. This causes hosts running Samba not to be listed in the Explorer’s «Network (Neighborhood)» views. While there is no connectivity problem and Samba will still run fine, users might want to have their Samba hosts to be listed by Windows automatically. wsdd AUR implements a Web Service Discovery host daemon. This enables (Samba) hosts, like your local NAS device, to be found by Web Service Discovery Clients like Windows. The default settings should work for most installations, all you need to do is start enable wsdd.service .

If the default configuration (advertise itself as the machine hostname in group «WORKGROUP») should be all you need in most cases. If you need, you can change configuration options by passing additional arguments to wsdd by adding them in /etc/conf.d/wsdd (see the manual page for wsdd for details).

wsdd2 AUR does the same thing, but is written in C instead of Python. By default, it will look for the netbios name and workgroup values in smb.conf .

Beginning with IOS 14.5 attempting to transfer from a device running IOS using the «Files» app to a samba share on Arch Linux will result in the error:

Источник

This document (7023574) is provided subject to the disclaimer at the end of this document.

Environment

SUSE Enterprise Storage 5

AppArmor

Situation

After configuring a Samba export via CephFS, attempting to access the share using «smbclient» fails with:

tree connect failed: NT_STATUS_UNSUCCESSFUL

Resolution

Update the «usr.sbin.smbd» AppArmor profile to allow read access to the Ceph related files by taking the following steps:

Edit «/etc/apparmor.d/usr.sbin.smbd» and add the following two lines:

 /etc/ceph/ceph.conf r,
 /etc/ceph/<insert_relevant_ceph.client.samba.gw.keyring_name> r,

Save the file and then reload AppArmor with:

# systemctl reload apparmor

Cause

The default AppArmor profile does not allow read access to the required «/etc/ceph/ceph.conf» and «/etc/ceph/<generated_samba_keyring_file>» files.

Additional Information

Looking at «/var/log/messages» the following AppArmor related messages will be logged:

2018-12-10T18:30:17.176296+01:00
serverX kernel: [527457.907974] audit: type=1400
audit(1544463017.052:155): apparmor=»DENIED» operation=»open»
profile=»/usr/sbin/smbd» name=»/etc/ceph/ceph.conf» pid=233702
comm=»smbd» requested_mask=»r» denied_mask=»r» fsuid=0 ouid=0
2018-12-10T18:32:38.320297+01:00
serverX kernel: [527599.048681] audit: type=1400
audit(1544463158.188:207): apparmor=»DENIED» operation=»open»
profile=»/usr/sbin/smbd»
name=»/etc/ceph/ceph.client<ins_samba_gw_keyring_name>» pid=233913
comm=»smbd» requested_mask=»r» denied_mask=»r» fsuid=0 ouid=0

Note
that the mentioned additional entries are the minimum required, it may
be needed to make additional adjustments to the AppArmor profile. For
more information on AppArmor see the online SLES 12 Security Guide documentation.

Disclaimer

This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented «AS IS» WITHOUT WARRANTY OF ANY KIND.

  • Document ID:7023574
  • Creation Date:
    11-Dec-2018
  • Modified Date:03-Mar-2020
    • SUSE Enterprise Storage

< Back to Support Search

For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com

Понравилась статья? Поделить с друзьями:
  • Error s3 error 403 signaturedoesnotmatch
  • Error s timeout 1042 что делать
  • Error s not enough storage space 1011 ошибка
  • Error s fthnd file load fail 5008
  • Error s ft enable dram fail 4032 что делать