Что такое samba сервер. Samba и Windows, файловый сервер для Windows сети. Секреты оптимизации Samba
А может просто интерес и любопытство толкают пользователей на поиски разного подходящего софта. К такому софту относится Samba. Вам необходимо знать, как настроить Samba на Ubuntu Server, если вы желаете сделать из своего компьютера базу данных или файловое хранилище.
Установка Samba на Ubuntu Server дает возможность создать базу данных.
Если вы думали, что страница посвящена изучению танца, вы слегка ошиблись. Samba - свободно распространяемое программное обеспечение. Оно реализует доступ к принтерам и файлам. Причём делает это на различных операционных системах.
Для чего нужна?
В сравнении с другими пакетами программ подобного назначения Самба имеет несколько достоинств и особенностей.
- Позволяет соединить друг с другом Unix-подобную систему, т. е. любую систему на Linux, и Windows. Причём не только Windows. Программа очень «всеядна»: MacOS , Solaris и другие ОС разной степени популярности.
- Самба даёт возможность пользователям Виндовс использовать компьютеры на Ubuntu в качестве сервера. То есть пользоваться файлами, к которым налажен доступ, а также частью подключённых устройств.
- Поддерживает доменную структуру NT Domain, управляет пользователями NT, поддерживает функции участника, первичного контроллера.
Наверное, для многих главное из этого - связь с машинами на Windows. Они в этом случае выступают в качестве клиента, а компьютер на Ubuntu - в качестве сервера. С другой стороны, пользователь Ubuntu также может получить доступ к сетевым папкам Windows.
Samba производится аж с 1992 года. И, что главное, новые версии выходят до сих пор. Последняя была выпущена седьмого марта 2017. С каждым годом разработчики стараются наладить совместимость большим количеством различных версий операционных систем, но главной фишкой остаётся соединение Linux-систем с Microsoft . В сравнении с Windows Server Samba может уступать ей из-за отсутствия поддержки части протоколов и инфраструктуры узлов. Однако многие утверждают, что скорость работы Самбы гораздо выше.
Настраиваем Samba
Перед непосредственно настройкой, программу нужно установить. Установка Samba выполняется таким же образом, как в случае с другими программами - при помощи ввода в терминал команды:
sudo apt-get install samba
Сразу же заметьте: все действия, которые будут описаны, включая и установку программы, можно выполнить как на простой Ubuntu, так и на Ubuntu Server. Только на последней доступен исключительно текстовый интерфейс.
После установки следует сделать бэкап файла конфигурации:
$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
$ sudo vi /etc/samba/smb.conf
Либо редактируем существующий. В этом файле содержатся основные установки сервера Самбы. Чтобы разобраться, что мы будем делать дальше, нужно понимать, что означают различные строки.
- Workgroup - рабочая группа. Значение этого параметра также часто будет Workgroup, поскольку в Виндовс домен рабочей группы по умолчанию выглядит именно так.
- Netbios name - имя компьютера Ubuntu, которое видят пользователи Windows . Здесь можно вводить значение на своё усмотрение.
- Security - режим авторизации пользователей. По умолчанию стоит User, то есть аутентификация на уровне пользователя. Пока что лучше так и оставить.
- Os level - указывает приоритет, который имеет Samba над другими клиентами (ПК) в локальной или интернет-сети.
- Name resolve order - очерёдность разрешения IP-адресов по NetBIOS имени.
- Read only - привилегия чтения или записи каталога. Значение может быть «yes» - исключительно чтение, «no» - запись.
Создаём пользователя
Это простейшее действие, с которого можно начинать работу с Самбой.
Добавляем пользователя в самой ОС:
$ useradd -M -l -s /sbin/nologin username
Создаём для него пароль:
Занесём нашего пользователя в базу Samba:
$ smbpasswd -a username
При помощи команды $ smbpasswd можно выполнять другие различные действия:
- $ smbpasswd username - смена пароля
- $ smbpasswd -x username - удаление пользователя
- $ smbpasswd -d username - бан пользователя
Сервер необходимо перезагружать, если вносите изменения в конфигурационный файл. Делается это с помощью команды:
$ systemctl restart smb
Это базовые настройки Samba. Теперь можно попробовать применить программу на практике.
Доступ к папке
Сначала попробуем создать папку, доступ к которой будет открыт всем пользователям, даже тем, кто не авторизован в Samba.
Создаём папку, с которой и будем потом работать на двух компьютерах:
$ sudo mkdir -p /samba/access
Теперь делаем для этой папки расширенный доступ, чтобы её мог открыть любой клиент нашей локальной сети:
$ cd /samba
$ sudo chmod -R 0755 access
$ sudo chown -R nobody:nogroup access/
Владельцем согласно коду является nobody.
Теперь в файле с конфигурацией сервера нужно сделать два раздела: первый, содержащий основную информацию:
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = srvr1
security = user
map to guest = bad user
name resolve order = bcast host
dns proxy = no
#==============
И второй, содержащий данные о папке access:
path = /samba/access
browsable =yes
writable = yes
guest ok = yes
read only = no
Следуют разделы друг за другом в таком же порядке.
Обновляем изменения сервера:
$ sudo service smbd restart
Действия с компьютером на Windows
На Винде также требуется выполнить некоторые действия, чтобы можно было без труда открыть новую общую папку и редактировать её.
- Открываем командную строку. Желательно делать это с расширенными правами, т. е. от имени администратора.
- Выполняем команду:
- notepad C:\Windows\System32\drivers\etc\hosts
- Открывается файл, в котором вводим следующую строчку:
- 168.0.1 srvr1.domain.com srvr1
Благодаря ей папка станет доступна. - Открыть её можно при помощи строки «Выполнить». Жмём Win + R, вводим: После этого нам откроется папка.
Закрытая папка
Настроенный сервер Samba можно использовать и для создания сетевых папок с ограниченным доступом. Такую папку тоже нужно сначала создать, а затем добавить в конфигурацию Samba.
Делаем папку с названием «Closed»:
$ sudo mkdir -p /samba/allaccess/closed
Делаем специальную группу, которая может иметь доступ к этой папке:
$ sudo addgroup securedgroup
Создаём особые права для разных групп:
$ cd /samba/access
$ sudo chown -R richard:securedgroup closed
$ sudo chmod -R 0770 closed/
Так же, как и в случае с открытой папкой, добавляем сведения в конфигурацию:
path = /samba/access/closed
valid users = @securedgroup
guest ok = no
writable = yes
browsable = yes
Перезапускаем сервер.
Как можно понять, мы сделали папку Closed внутри Access. Таким образом Access может открыть каждый пользователь локальной сети, но чтобы смотреть и редактировать Closed, нужно обладать особыми правами.
Чтобы убедиться, что всё работает именно так, как мы это задали в командном файле, можно выполнить несколько простых действий.
Создаём пользователя и добавляем его в нашу закрытую группу:
$ sudo usermod -a -G securedgroup winston
Пользователя у нас зовут, как пачку сигарет (или премьер-министра Британии).
Делаем для Уинстона пароль:
$ sudo smbpasswd -a winston
После этого нам предложат ввести новый пароль, чтобы зайти заново под только что созданным аккаунтом. Не забудьте после этого сделать перезагрузку. Теперь вы знаете, как настроить сервер через Самбу в Убунту.
Конечно, возможности Samba не исчерпываются только созданием простых папок. Но эти простые инструкции и примеры показывают, что можно сделать при помощи этой программы. Это будет первым шагом к пониманию сути серверных ПК и их управления.
Linux - отличная операционная система, но от Windows мы не куда не денемся и он от нас тоже. Windows будет окружать нас всегда - будь то домашняя, корпоративная сеть или интернет-кафе. Нам постоянно предстоит обмениваться документами с Windows-компьютерами - ведь далеко не все пользователи предпочитают работать в Linux. Имея в своем распоряжении сервер на Linux , в любом случае возникнет необходимость взаимодействия с Windows-компьютерами, поэтому речь и пойдет о подключении Linux к сети Microsoft.
Установка Samba
Для установки Samba нам нужно установить пакеты samba и samba-client. Желательно также установить пакет smbfs. Кроме того, система поставит на обновление пакет samba-common, который возможно уже установлен в системе. Все мои манипуляции будут проводится на Ubuntu 10.04, основные отличия от других дистрибутивов – это способ установки. Для Ubuntu через консоль, таким образом:
$ sudo apt — get install samba
Или используя менеджер пакетов Synaptic, что я и сделал, такой вариант оказался более удобным для меня, поскольку можно было выбрать из списка те пакеты, которые мне нужны, это были:
samba
smbclient
samba-common
Если вы когда-то использовали другой дистрибутив Linux, то наверняка знакомы с программой LinNeighborhood. Это графическая программа, которая позволяет просматривать ресурсы Windows-сети. В Ubuntu в ней нет никакой необходимости. Во-первых, штатные средства GNOME позволяют просматривать Windows-сети. А во-вторых, ради интереса было установлено программу LinNeighborhood с одного из репозиториев Ubuntu. Выяснилось, что эта программа, найденная Synaptic, вообще не пригодна к использованию (проблемы с локализацией). Ну и ладно, смысл разбираться, если есть отличные стандартные средства, которые уже работают.
Базовая настройка Samba
На этом этапе будем считать, что утилита установлена. Основной конфигурационный файл Samba - /etc/samba/smb.conf. Его необходимо открыть и изменить несколько параметров. Первый это workgroup - он задает имя (на Ваш выбор) рабочей группы или домена NT:
WORKGROUP = MyHomeGroup
Можете также установить параметр comment - это описание вашего компьютера:
comment = My Linux computer
Установите параметр security. Если сеть клиент/сервер, то нужно выбрать параметр server, а если одноранговая сеть (т. е. сеть без выделенного сервера), то нужно выбрать user или share:
security = share
Имя гостевой учетной записи установите так:
guest account = guest
Также нужно настроить кодировки:
client code page = 866
character set = utf8
Для того чтобы Samba работал быстрее, установите следующие опции:
socket options = TCP_NO DELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = no
Параметр interfaces указывает интерфейсы, на которых должен работать сервис Samba. Необходимо указать те интерфейсы, которые связывают нашу машину с Windows-сетями:
interfaces = 192.168.0.22/24
Настройка общих ресурсов
Теперь осталось сконфигурировать ресурсы, которые мы хотим предоставить в общее пользование, это секция [ public ].
# общий каталог
comment = Public Directory
# путь
path = /var/samba
# не только чтение
read only = no
# разрешить запись
writable = yes
# разрешить гостевой доступ
guest ok = yes
# разрешить просмотр содержимого каталога
browseable = yes
В этом случае общим ресурсом нашего компьютера будет каталог /var/samba (его нужно создать, поскольку по умолчанию в системе нет такого каталога). В него другие пользователи смогут записывать свои файлы (read only=no, writeable=yes), естественно, они смогут их и читать (browseable=yes). Проверка имени пользователя и пароля для доступа к ресурсу не нужна (guest ok=yes) - используется так называемый гостевой доступ. Комментарий «Public Directory» увидят другие пользователи Windows-сети при просмотре ресурсов нашего компьютера.
Если есть необходимость предоставить общий доступ («расшарить») к домашним каталогам пользователей, то идем в секцию;. Раскомментируем все строки, закомментированные с помощью точки с запятой до строки;. Т . е . должно получиться следующее :
comment = Home Directories
browseable = no
valid users = %S
writable = no
create mask = 0600
directory mask = 0700
Сейчас пользовательские каталоги не будут видны в списке общих ресурсов, обратиться к ним можно по адресу \\сервер\имя_пользователя . Например, \\server\petya. Если нужно, чтобы пользовательские ресурсы можно было просмотреть, тогда устанавливаем значение yes для параметра browseable:
browseable = yes
После всех изменений сохраняем файл конфигурации и запускаем (или перезапускаем — restart) Samba:
$ sudo /etc/init.d/samba start
Просмотр ресурсов Windows-сети
Просмотреть ресурсы Windows-сети можно с помощью программы smbclient, но она работает в текстовом режиме, поэтому не совсем удобна в использовании. Гораздо удобнее использовать обозреватель файлов для просмотра ресурсов сети. Сделать это можно с помощью меню Переход | Соединиться с сервером…
Секреты оптимизации Samba
Теперь поговорим о том, как заставить Samba работать немного быстрее. Если вы откроете файл конфигурации smb.conf, то найдете в нем параметр wide links. Никогда не устанавливайте его в no ! Так мы существенно снизим производительность Samba. Наоборот, установить его нужно в yes (если до этого параметр wide links был отключен), что существенно повысит производительность.
Параметр wide links определяет, как Samba будет следовать по символическим ссылкам. Если wide links=no, то Samba не будет следовать по символическим ссылкам вне экспортируемой области. Сначала Samba следует по символической ссылке, а затем выполняет так называемый directory path lookup (системный вызов, определяющий, где завершилась ссылка). Данная операция подразумевает на 6 системных вызовов больше, нежели в случае, если wide links=yes. Учитывая, что подобных операций делается очень много, то выключение wide links снижает производительность Samba приблизительно на 30%.
Samba - программа, которая позволяет обращаться к сетевым дискам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части. Является свободным программным обеспечением, выпущена под лицензией GPL .Samba работает на большинстве Unix-подобных систем, таких как GNU/Linux, POSIX-совместимых Solaris и Mac OS X Server, на различных вариантах BSD, в OS /2, Windows. Samba включена практически во все дистрибутивы GNU/Linux, в том числе, конечно, и в Ubuntu .
Установка
Чтобы сделать общую папку в Ubuntu Desktop достаточно щёлкнуть правой кнопкой мыши на папке и выбрать пункт меню «Опубликовать папку». Никаких конфигурационных файлов при этом править не надо. Всё описанное ниже относится только к ручной настройке, например, в случае создания файлового сервера.
Для установки достаточно открыть терминал и ввести:
Sudo apt-get install samba
Приложение будет автоматически загружено и установлено.
Настройка
При помощи терминала сделаем резервную копию начального файла конфигурации:
Sudo cp /etc/samba/smb.conf{,.bak}
Теперь можно отредактировать файл настроек /etc/samba/smb.conf, для этого откройте его в любом текстовом редакторе с правами суперпользователя. Например, так:
Sudo nano /etc/samba/smb.conf
Написанное далее вообще говоря всего лишь один конкретный сценарий использования Samba, и в огромном количестве случаев всё настраивается абсолютно не так. Статью необходимо исправить, сделав акцент на возможностях Samba, а не только на применении этой программы в качестве файлохранилища с локальной авторизацией. Пример же с файлохранилищем лучше вынести в отдельную подробную статью.
Пример настройки Samba в качестве автономного файлового сервера с авторизацией:
; Глобальные настройки сервера ; General server settings ; Имя компьютера, которое будет отображаться в сетевом окружении netbios name = main-server server string = ; Рабочая группа клиентов workgroup = WORKGROUP announce version = 5.0 socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192 passdb backend = tdbsam security = user null passwords = true ; Файл для альясов имен юзеров username map = /etc/samba/smbusers name resolve order = hosts wins bcast ; wins support устанавливается в yes, если ваш nmbd(8) в Самба является WINS сервером. Не устанавливайте этот параметр в yes если у вас нет нескольких подсетей и вы не хотите чтобы ваш nmbd работал как WINS сервер. Никогда не устанавливайте этот параметр в yes более чем на одной машине в пределах одной подсети. wins support = no ; Поддержка принтеров printing = CUPS printcap name = CUPS ; Логи log file = /var/log/samba/log.%m syslog = 0 syslog only = no ; Настройка привязки к интерфейсам, на каких слушать, если не указано слушает на все интерфейсах; interfaces = lo, eth0 ; bind interfaces only = true ; ; ; path = /var/lib/samba/printers ; browseable = yes ; guest ok = yes ; read only = yes ; write list = root ; create mask = 0664 ; directory mask = 0775 ; ; ; path = /tmp ; printable = yes ; guest ok = yes ; browseable = no ; ; ;path = /media/cdrom ;browseable = yes ;read only = yes ;guest ok = yes ; Шара жесткого диска; Имя шары, видно у клиентов ; Путь к расшариваемому диску path = /media/sda1 ; Можно ли просматривать browseable = yes read only = no guest ok = no create mask = 0644 directory mask = 0755 ; Привязка к определенному имени пользователя или группе, имена через пробел; force user = user1 user2 ; force group = group1 group2 ; Еще один жесткий диск, по аналогии с тем что выше path = /media/sde1 browseable = yes read only = no guest ok = no create mask = 0644 directory mask = 0755
Теперь надо разобраться с пользователями.
Samba использует пользователей которые уже есть в системе, возьмем для примера имя user, допустим что он уже есть в системе, надо внести его в базу данных SMB и назначить пароль для доступа к общим ресурсам, сделаем это командой:
Smbpasswd -a user
Вам будет предложено ввести пароль, пользователь будет добавлен в базу, теперь необходимо включить этого пользователя.
Smbpasswd -e user
Далее создадим псевдоним для имени пользователя user что бы облегчить себе доступ с Windows машины на которой у нас например пользователь с именем Admin, для этого создадим и отредактируем файл /etc/samba/smbusers:
Sudo touch /etc/samba/smbusers sudo gedit /etc/samba/smbusers
Впишите в файл пару строк
# Unix_name = SMB_name1 SMB_name2 user = Admin
На этом настройка закончена, перезапустите Samba.
Установить самый простой GUI для Samba можно командой:
Sudo apt-get install system-config-samba
Запускается он командой:
Sudo system-config-samba
Все изменения он записывает в конфигурационный файл samba.
Для удалённого администрирования Samba в качестве web-интерфейса для Samba отлично подойдёт