Product SiteDocumentation Site

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

Samba — это набор инструментов, поддерживающих протокол SMB (также известный как «CIFS») в Linux. Этот протокол используется Windows для общих сетевых ресурсов и общих принтеров.
Samba can also act as a Windows domain controller. This is an outstanding tool for ensuring seamless integration of Linux servers and the office desktop machines still running 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).
Вуаля, принтер готов!