Product SiteDocumentation Site

11.5. Настройка общих ресурсов Windows с помощью Samba

Samba — это набор инструментов, поддерживающих протокол SMB (также известный как «CIFS») в Linux. Этот протокол используется Windows для общих сетевых ресурсов и общих принтеров.
Samba также может выступать в качестве контроллера домена Windows. Это выдающийся инструмент для обеспечения плавной интеграции серверов Linux и настольных офисных компьютеров, на которых всё ещё работает Windows.

11.5.1. Samba Server

Пакет samba содержит два основных сервера Samba 4, smbd и nmbd.

11.5.1.1. Конфигурирование с помощью debconf

Пакет устанавливает минимальную конфигурацию во время первоначальной установки в /etc/samba/smb.conf путем простого копирования /usr/share/samba/smb.conf. Так что тебе действительно стоит запустить dpkg-reconfigure samba-common чтобы адаптировать его:
При первой установке единственная необходимая информация — это имя рабочей группы, к которой будет принадлежать сервер Samba (ответ: FALCOTNET в нашем случае).
В случае обновления пакета (из старой стабильной версии Debian) или если SMB-сервер уже настроен на использование WINS-сервера (wins server), пакет также предлагает идентифицировать WINS-сервер на основе информации, предоставленной DHCP. демон. Администраторы Falcot Corp отвергли этот вариант, так как намерены использовать в качестве WINS-сервера сам сервер Samba.

11.5.1.2. Настройка вручную

11.5.1.2.1. Изменения в smb.conf
Требования Falcot требуют изменения других опций в файле конфигурации /etc/samba/smb.conf. Следующие выдержки суммируют изменения, которые произошли в секции [global].
[...]

[global]

## Browsing/Identification ###

# Измените это на имя рабочей группы/NT-домена, частью которого будет ваш сервер Samba
   workgroup = FALCOTNET

[...]

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
   wins support = yes 1

[...]

####### Authentication #######

# Роль сервера. Определяет, в каком режиме будет работать Samba.
# Возможные значения "standalone server", "member server", "classic primary
# domain controller", "classic backup domain controller", "active
# directory domain controller".
#
# Большинству людей нужно "standalone server" или "member server".
# Запуск как "active directory domain controller" вначале потребует запуск
# "samba-tool domain provision" чтобы стереть базы данных и создать
# новый домен.
   server role = standalone server

   obey pam restrictions = yes

[...]

# "security = user" всегда хорошая идея. Для этого нужен аккаунт Unix
# на этом сервере для каждого пользователя имеющего к серверу доступ.
   security = user 2

[...]

1

Указывает, что Samba должна действовать как сервер имен Netbios (WINS) для локальной сети. Эта опция была удалена из конфигурации по умолчанию в Buster и при желании её необходимо добавить вручную.

2

Это значение по умолчанию для этого параметра; однако, поскольку он является центральным в конфигурации Samba, рекомендуется заполнять его явно. Каждый пользователь должен пройти аутентификацию перед доступом к любому общему ресурсу.
11.5.1.2.2. Добавление пользователей
Каждому пользователю Samba необходима учётная запись на сервере; сначала должны быть созданы учётные записи Unix, а затем пользователь должен быть зарегистрирован в базе данных Samba. Шаг Unix выполняется как обычно (например с использованием adduser).
Чтобы добавить существующего пользователя в базу данных Samba, достаточно запустить команду smbpasswd -a user; эта команда запрашивает пароль в интерактивном режиме.
Пользователь может быть удалён с помощью команды smbpasswd -x user. Учётную запись Samba также можно временно отключить (с помощью smbpasswd -d user) и снова включить позже (командой smbpasswd -e user).

11.5.2. Samba клиент

Клиентские функции Samba позволяют машине Linux получать доступ к общим ресурсам Windows и общим принтерам. Необходимые программы доступны в пакетах cifs-utils и smbclient.

11.5.2.1. Программа smbclient

Программа smbclient запрашивает SMB-серверы. Она принимает опцию -U user, для подключения к серверу под определенным идентификатором. smbclient //server/share получает доступ к общему ресурсу в интерактивном режиме, аналогично FTP-клиенту командной строки. smbclient -L server выводит список всех доступных (и видимых) общих ресурсов на сервере.

11.5.2.2. Монтирование общих ресурсов Windows

Команда mount позволяет монтировать общий ресурс Windows в иерархию файловой системы Linux (с помощью mount.cifs предоставляемых cifs-utils).

Пример 11.21. Монтирование общего ресурса Windows

mount -t cifs //arrakis/shared /shared \
      -o credentials=/etc/smb-credentials
Файл /etc/smb-credentials (который не должен быть доступен для чтения пользователям) имеет следующий формат:
username = user
password = password
Другие параметры можно указать в командной строке; их полный список доступен в странице руководства mount.cifs(1). Особенно интересны две опции: uid и gid разрешить принудительно указывать владельца и группу файлов, доступных при монтировании, чтобы не ограничивать доступ только root-ом.
Монтирование общего ресурса Windows также можно настроить в /etc/fstab:
//server/shared /shared cifs credentials=/etc/smb-credentials
Размонтирование общего ресурса SMB/CIFS выполняется стандартной командой umount.

11.5.2.3. Печать на общем принтере

CUPS — это элегантное решение для печати с рабочей станции Linux на принтер, общий для компьютера с Windows. Когда smbclient установлен, CUPS позволяет автоматически устанавливать общие принтеры Windows.
Вот необходимые шаги:
  • Войдите в интерфейс конфигурации CUPS: http://localhost:631/admin
  • Нажмите «Добавить принтер».
  • Выберите устройство принтера, выберите «Принтер Windows через SAMBA».
  • Введите URI подключения для сетевого принтера. Это должно выглядеть следующим образом:
    smb://user:password@server/printer.
  • Введите имя, которое будет уникальным образом идентифицировать этот принтер. Затем введите описание и расположение принтера. Это строки, которые будут отображаться конечным пользователям, чтобы помочь им идентифицировать принтеры.
  • Укажите производителя/модель принтера или напрямую предоставьте рабочий файл описания принтера (PPD).
Вуаля, принтер готов!