Еще в 1990-х годах Microsoft разработала протокол, который позволяет одному компьютеру с Windows получать доступ к файлам и папкам на другом компьютере с Windows. Протокол, известный как Common Internet File System (CIFS), но первоначально называвшийся Server Message Block (SMB), был реализован в других операционных системах, включая Linux. Самая популярная реализация известна как Samba и позволяет таким устройствам, как Raspberry Pi, выступать в качестве файлового сервера CIFS. Другими словами, он позволяет ПК с Windows монтировать папку на Raspberry Pi, а затем копировать, удалять, читать и записывать на нее файлы.
Установить и настроить Samba на Raspberry Pi для базового обмена файлами довольно просто. Сначала необходимо установить программное обеспечение Samba. Для этого используйте следующую команду:
sudo apt-get install samba samba-common-bin
Вся информация о конфигурации Samba хранится в файле /etc/samba/smb.conf
. Файл конфигурации по умолчанию требует лишь небольшой настройки, чтобы можно было использовать общие домашние каталоги пользователя.
Первое изменение, которое необходимо внести, — это определить, какой тип механизма безопасности следует использовать для контроля доступа к общим файлам. Самый простой способ — это так называемая «безопасность на уровне пользователя». По сути, это означает, что для получения доступа к общей папке подключающемуся клиенту необходимо предоставить действительные имя пользователя и пароль.
По умолчанию Samba экспортирует домашние каталоги как доступные только для чтения. Второе изменение изменяет это так, что при доступе к общей папке у вас есть возможность читать и писать (это означает, что вы также можете создавать новые файлы, удалять файлы и т. д.).
Отредактируйте файл конфигурации Samba, используя:
sudo nano /etc/samba/smb.conf
Теперь прокрутите вниз, пока не найдете строку # security = user
, и удалите решетку (#) из начала строки:
Прокрутите вниз, пока не найдете раздел [Homes]
, и измените read only = yes
на read only = no
, как показано ниже:
Нажмите «Ctrl + X», чтобы выйти из редактора nano, и введите «Y», чтобы подтвердить сохранение файла. Нажмите ENTER, чтобы сохранить текущее имя файла (т. е. /etc/samba/smb.conf).
Чтобы перезагрузить сервер Samba, используйте следующую команду:
sudo service samba restart
Также можно указать серверу Samba перечитать файл конфигурации без перезапуска сервера (что означает, что все текущие соединения не будут потеряны). Однако недостатком является то, что команда сообщит OK
, даже если сервер не запущен. Если вы не уверены в рабочем состоянии сервера, используйте команду restart
выше.
sudo service samba reload
Прежде чем вы сможете получить доступ к общим папкам, остается последний шаг. Поскольку сервер использует «безопасность на уровне пользователя», необходимо определить пароль, когда CIFS используется для доступа к файлам на Raspberry Pi. Чтобы установить пароль Samba для пользователя pi
по умолчанию, введите:
sudo smbpasswd -a pi
Это добавит пользователя pi
в список пользователей Samba и предложит ввести пароль. Вам необходимо повторить этот шаг для всех других пользователей, которых вы добавили в Raspbian.
Подключение из Windows
Теперь вы можете подключиться к Raspberry Pi с компьютера под управлением Windows. Откройте окно «Компьютер» (в Windows 7) или «Этот компьютер» (в Windows 8) и нажмите кнопку «Подключить сетевой диск» на панели инструментов (Windows 7) или нажмите кнопку «Подключить сетевой диск» в разделе «Компьютер». (в Windows 8).
В диалоговом окне «Подключение сетевого диска» выберите неиспользуемую букву диска из раскрывающегося списка «Диск:» и введите \\raspberrypi\pi
в поле «Папка:». Установите флажок «Подключиться, используя другие учетные данные» и нажмите «Готово».
Введите pi
в поле «Имя пользователя», когда вас попросят ввести сетевые учетные данные. Введите пароль, который вы установили ранее, в поле пароля и нажмите «ОК».
После подключения вы можете управлять файлами на Raspberry Pi с помощью проводника Windows.
Заключение
По умолчанию все домашние каталоги пользователей являются общими, и если установлен пароль Samba, каждый пользователь Pi может получить доступ к своим файлам. Также возможно подключиться к Pi по одному и тому же протоколу «Сетевой Windows» из OS X и Linux, поскольку оба они поддерживают CIFS.