
Что такое сервер Samba?
Сервер Samba — это сервер, который поддерживается пакетом свободного программного обеспечения Samba. С помощью дистрибутивов Linux и Unix лицензированный пакет GNU способен реализовать протоколы SMB (одноименный пакет). Протокол server message block (SMB), также известный как common internet file system (CIFS), изначально использовался для файловых, печатных и других служб операционных систем Microsoft Windows. Серверы Samba поддерживают интеграционные системы Windows, Linux и Unix, что позволяет обмениваться файлами или использовать принтеры на любой операционной системе. С момента выпуска версии 4 серверы Samba для Unix и Linux взяли на себя роль контроллеров домена Active Directory, которые позволяют осуществлять централизованную авторизацию и аутентификацию как компьютеров, так и пользователей.
Серверы Samba состоят из нескольких модулей, позволяющих настраивать протоколы SMB или CIFS. В основе сервера Samba лежат следующие четыре демона (системы, работающие в фоновом режиме):
- samba: этот демон был добавлен в версии 4 и обеспечивает работу контроллеров домена Active Directory. Он настраивается в файле smb.conf.
- smbd: он обеспечивает совместное использование файлов и принтеров и настраивается в файле smb.conf.
- mbd: отвечает за преобразование имен NetBIOS в IP-адреса и также может быть настроен в файле smb.conf.
- winbindd: winbindd разрешает информацию о группах и пользователях, делая ее понятной для систем Unix и Linux. Он предлагает автономные возможности настройки.
Как установить сервер Samba
SMB/CIFS — это стандартный протокол для несложного совместного использования сети в системах Windows. Однако когда в сеть входят компьютеры с операционными системами Linux или Unix, обмен и совместное использование файлов становится более сложной задачей. Установка сервера Samba, который соединяет отдельные устройства, решает эти проблемы совместимости. Поскольку пакет Samba состоит из компонентов с открытым исходным кодом, дополнительных затрат не требуется. В следующих шагах описано, как установить сервер Samba в Linux.
Шаг 1: установка
Сначала решите, будет ли работа осуществляться непосредственно на сервере или с клиента через удаленный доступ. Затем введите следующую команду для установки пакета Samba на сервер:
apt-get install samba
Шаг 2: создание учетной записи пользователя для базы данных Samba
После установки сервера Samba необходимо активировать учетную запись пользователя. Некоторые дистрибутивы Linux автоматически синхронизируют учетные записи пользователей в сети и добавляют базу данных Samba. Если пакет libpam-smbpass уже установлен на сервере, пароли Linux и SMB будут синхронизированы. В противном случае все учетные записи должны быть созданы вручную, чтобы пользователи могли получить доступ к соответствующим сетевым службам.
Учетную запись можно создать с помощью команды smbpasswd с четырьмя параметрами -a, -x, -d и -e. Соответствующие командные строки будут выглядеть следующим образом:
sudo smbpasswd -a USERNAME (PASSWORD)
sudo smbpasswd -x USERNAME
sudo smbpasswd -d USERNAME
sudo smbpasswd -e USERNAME
Первая команда добавляет пользователя в базу данных сервера Samba и включает общий доступ к сети. Сразу после имени пользователя пользователь может скрытно установить или изменить пароль. Он может быть идентичным или отличаться от пароля Linux. Вторая команда (-x) удаляет пользователя из базы данных, параметр -d деактивирует учетную запись, а -e вновь активирует ее. Команда
sudo service smbd reload
перезагружает конфигурацию сервера, чтобы принять новые изменения.
Шаг 3: настройка общего доступа к файлам
Глобальные настройки
Глобальные настройки могут быть заданы в конфигурационном файле сервера Samba. Здесь сохраняются разрешения на ресурсы и глобальные свойства сервера. Файл открывается с помощью следующей команды:
sudo gedit /etc/samba/smb.conf
Файл smb.conf содержит множество закомментированных примеров, которые обозначаются либо хэшем (#), либо точкой с запятой (;) и являются неактивными. Если вы захотите активировать один из этих примеров, просто удалите дополнительный символ. Новые записи могут быть вставлены в конец файла. Сначала укажите в квадратных скобках глобальное имя, под которым доступен разделяемый ресурс. Следующие строки описывают путь к соответствующей папке или файлу, а также применимые параметры. Например, чтобы открыть общий доступ к папке с фотографиями, разрешив пользователю доступ на запись, а также доступ гостевого пользователя, необходима запись в smb.conf:
[Photos]
path= /documents/photos
writeable = yes
guest ok = yes
Чтобы принять изменения, перезагрузите Samba, выполнив следующую команду:
sudo service smbd reload
Совместное использование пользователями
Для того чтобы настроить совместное использование ресурсов для конкретного пользователя, пользователь должен принадлежать к группе sambashare. Следующая команда добавляет пользователя в эту группу:
sudo usermod -aG sambashare USERNAME
Повторите вход или перезапустите Linux для подтверждения членства в группе. Если пользователь настраивает общие ресурсы, они больше не будут сохраняться в файле smb.conf; скорее, теперь они будут находиться в отдельном текстовом файле, обычно /var/lib/samba/usershares. Все эти файлы включают имя общего ресурса и путь утверждения, необязательный комментарий, ACL пользовательского ресурса (который указывает, можно ли редактировать общую папку или она доступна только для чтения), а также параметр, показывающий, кто имеет доступ к файлу. Например:
net usershare add Photos /documents/photos ‘holiday 2015’ Everyone: r, USER1: f
Эта команда позволяет открыть общий доступ к папке с общим именем ‘Photos’ по пути ‘/documents/photos’ и комментарием ‘holiday 2015’. Все учетные записи пользователей сервера Samba могут читать папку. USER1 имеет полные права и может изменять настройки. Для проверки папки можно использовать следующую команду:
net usershare list
net usershare info
Первая команда перечисляет все папки общего доступа под соответствующим sharename, а вторая дает подробную информацию, такую как комментарии, права и т.д. Если пользователь хочет внести изменения в папку, значения всегда следует вводить в командной строке, а не в текстовом файле usershares. Утверждения могут быть удалены с помощью команды:
net usershare delete SHARENAME
Сервер Samba: Windows и Linux, объединенные в одну сеть
При совместном использовании принтеров и файлов в одной сети сервер Samba и клиентское программное обеспечение Samba обеспечивают элегантное решение проблем, вызванных различными операционными системами. Этот пакет свободного программного обеспечения реализует сетевой протокол SMB/CIFS в системах Unix и Linux и тем самым делает их совместимыми с дистрибутивами Windows в сети — как серверами, так и клиентами.
Отчасти благодаря своей новой роли контроллера домена Active Directory сервер Samba в Linux управляет совместным использованием данных и сервисов в сети, как и серверы Windows. Те, кто хочет установить сервер Samba, могут легко сделать это со своего персонального компьютера через удаленный доступ. У пользователей также есть выбор: работать непосредственно в командной строке или для простоты установить графический интерфейс