Raspberry Pi 3. Организация сетевого доступа к файлам через Samba

FreeNAS использует Samba для обмена томами с использованием SMB-протокола Microsoft. SMB встроен в операционные системы Windows и MacOS, а большинство систем Linux и BSD предварительно устанавливают клиент Samba для поддержки SMB. Если дистрибутив этого не сделал, установите клиент Samba с помощью репозитория дистрибутива.

Проявления ошибки

Уже сказал выше, что ошибка всплывает на всех версиях Windows – и более чем часто на современных Windows 7, Windows 8, Windows 8.1, Windows 10.

Может иметь разные по сути названия с одним смыслом. Сетевая ошибка:

  • Windows не может получить доступ к сетевой папке, диску, иному расположению в локальной сети
  • Windows не может получить доступ к компьютеру в локальной сети. Не найден сетевой путь. Код ошибки: XXXXXXXX
  • Windows не может получить доступ к ВАШАПАПКА. Разрешение на доступ к ВАШАПАПКА отсутствует. Обратитесь к сетевому администратору для получения доступа.
  • Windows не может получить доступ к компьютеру. Проверьте правильность написания данного имени.

Один из вариантов проявления

Проявления ошибки

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

Для справки: типичные коды ошибок – 0x800070035, 0x80004005 или 0x800704cf.

Друзья, если у вас не видит вообще каких-то папок – рекомендую прочитать ЭТУ СТАТЬЮ ОТ БОРОДАЧА. Там же можно посмотреть и другие способы разрешения сетевых проблем, все эти ошибки очень похожи, универсального одного способа не существует, поэтому приходится писать столько много в основном бесполезного текста.

Настройка Samba

Для настройки сервера Samba необходимо сделать две вещи: задать пользовательский пароль и отредактировать файл конфигурации.

Начнем с пароля:

sudo smbpasswd -a pi

Читайте также:  Как исправить ошибку 0xc0000007b при запуске программы

Этой командой мы задаем пароль для пользователя pi, с которым можно будет получить доступ к расшаренным на Raspberry Pi ресурсам по SMB-протоколу.

Можно обойтись и без пароля, расшарив ресурсы для гостевого доступа. Но я рекомендую гостевой доступ не открывать, а пароль все-таки установить. Пароль установлен, теперь надо отредактировать файл конфигурации:

sudo nano /etc/samba/

Настройка Samba

В этом файле нас в первую очередь интересует группа параметров [global]. В нее нужно добавить следующие строки:

[global] security = user encrypt passwords = true map to guest = bad user guest account = nobody

Заголовок [global] повторно писать не нужно, нужно просто добавить 4 строки под имеющийся заголовок.

Также нужно уделить внимание уже прописанному в [global] параметру:

workgroup = WORKGROUP

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

Теперь прописываем ресурсы для расшаривания. Следующие строки нужно вписать в самый конец файла, вместе с заголовком в квадратных скобках:

[usbstorage] path = /mnt/usbstorage/ writeable = yes read only = no browseable = yes

Эти строки создают ресурс, который будет виден (browseable = yes) в сетевом размещении под названием usbstorage ([usbstorage]) и доступен для записи (writeable = yes, read only = no), и находящийся на Raspberry Pi по пути  /mnt/usbstorage.

То есть я расшариваю весь примонтированный к Raspberry Pi жесткий диск целиком.

Настройка Samba

Можно сделать несколько отдельных шар, прописав в конфиге несколько ресурсов с отдельными [названиями] и указав в каждом свой /путь/до/нужной/директории.

При этом нужно убедиться, что у пользователя, под которым мы будем логиниться по SMB-протоколу, есть права доступа к этим файлам. Если нет – их нужно задать:

sudo chmod -R 755 /путь/до/нужной/директории

Можно открыть гостевой доступ, прописав его следующим образом:

Читайте также:  Как удалить программу и её следы на диске и в реестре

[пример ресурса с гостевым доступом] comment = Public Share path = /путь/до/нужной/директории read only = no guest only = yes guest ok = yes

Все это вопрос удобства и личных предпочтений.

Мне было удобнее расшарить весь диск целиком, сделав доступ к нему доступным по паролю.

Закончив редактировать конфигурацию Samba, перезагрузим Raspberry Pi для применения изменений:

sudo reboot

И проверим работоспособность введенных параметров.

Настройка Samba

Открываем “Сетевое окружение”, находим в нем свою Raspberry Pi:

Вводим заданный пароль для пользователя pi:

Если пароль введен верно, то видим расшаренные ресурсы.

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

Открываем его:

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

Настройка неавторизованного доступа

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

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

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

Чтобы настроить общий ресурс без проверки подлинности, нажмите Wizard (Мастер), затем дважды нажмите кнопку «Далее», чтобы отобразить экран.

Создание не прошедшей проверку подлинности SMB ресурсов в FreeNAS

Настройка неавторизованного доступа

Заполните следующие поля на этом экране:

  • Имя ресурса (Share name): введите имя для общего ресурса. В этом примере ресурс называется smb_insecure.
  • Нажмите кнопку для Windows (SMB) и включите параметр Allow Guest.
  • Нажмите кнопку Ownership. Откройте раскрывающееся меню User и выберите nobody. Нажмите кнопку Return (Возврат), чтобы вернуться к предыдущему экрану.
  • Нажмите кнопку «Добавить». Если этот шаг будет забыт, этот ресурс не будет создан. Нажатие кнопки «Добавить» добавляет запись в кадр «Имя» с именем, которое было введено в Share name.
Читайте также:  Настройка Active Directory Domain Services

Дважды нажмите кнопку «Далее», затем кнопку «Подтвердить», чтобы создать общий ресурс. Мастер автоматически создает набор данных для общего ресурса и запускает службу SMB, чтобы доступ к ней был немедленно доступен. Новая доля появится в разделе Sharing ‣ Windows (SMB).

Теперь пользователи могут получить доступ к ресурсу от любого клиента SMB и не будут запрашивать их имя пользователя или пароль. Например, чтобы получить доступ к ресурсу из системы Windows, откройте «Проводник» и нажмите «Сеть». В этом примере конфигурации появляется система с именем FREENAS с долей с именем insecure_smb. Пользователь может копировать данные в и из не прошедшей проверку подлинности SMB-ресурса.

Как соотносятся SMB и Samba

Samba — пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части. Является свободным программным обеспечением, выпущена под лицензией GPL.

Начиная с четвёртой версии, разработка которой велась почти 10 лет, Samba может выступать в роли контроллера домена и сервиса Active Directory, совместимого с реализацией Windows 2000, и способна обслуживать все поддерживаемые Microsoft версии Windows-клиентов, в том числе Windows 10.

Samba работает на большинстве Unix-подобных систем, таких как Linux, POSIX-совместимых Solaris и Mac OS X Server, на различных вариантах BSD; в OS/2 портирован Samba-клиент, являющийся плагином к виртуальной файловой системе NetDrive. Samba включена практически во все дистрибутивы Linux (из Википедии).