Поддержка сетевого окружения 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 не исчерпываются только созданием простых папок. Но эти простые инструкции и примеры показывают, что можно сделать при помощи этой программы. Это будет первым шагом к пониманию сути серверных ПК и их управления.
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 отлично подойдёт