Настройка Samba сервера
Обновлено 24 марта 2021
Введение
Samba - это популярный пакет программ с открытыми исходными текстами, который предоставляет файловые и принт-сервисы Microsoft® Windows® клиентам. Настройка Samba-сервера может быть выполнена при помощи утилит Calculate входящих в пакет sys-apps/calculate-server. Для хранения учётных записей пользователей, групп и машин и управления ими утилиты используют OpenLDAP-сервер. Необходимое программное обеспечение входит в состав Calculate Directory Server.
В качестве Linux клиента может выступать любая версия Calculate Linux Desktop (CLD, CLDC, CLDL, CLDM или CLDX). В качестве Windows клиентов могут быть использованы операционные системы семейства Windows. На данный момент Microsoft прекратила официальную поддержку доменов NT4 в операционных системах Windows. Однако с некоторыми изменениями вы все еще можете использовать более поздние выпущенные операционные системы Windows с доменом Samba NT4.
Настройка сервера
Настройка Samba-сервера выполняется в несколько этапов. Так как все данные пользователей и машин хранятся в LDAP, вначале неободимо выполнить настройку OpenLDAP-сервера, а затем - настройку LDAP для хранения учётных записей пользователей Linux. Это необходимо для работы Linux-клиентов. После этого можно настроить Samba-сервер.
Настройка LDAP
Настройте LDAP-сервер согласно руководству.
Настройка Samba
Перед настройкой Samba-сервера настройте LDAP для хранения учётных записей Unix-пользователей. Для этого выполните:
* ПРЕДУПРЕЖДЕНИЕ: Выполнение этой программы изменит конфигурационные файлы и базу данных сервиса LDAP. Если вы готовы продолжить выполнение программы, введите 'yes', если нет - 'no': yes * Добавлен ldif файл ... [ ok ] * Unix сервис сконфигурирован ... [ ok ]
Для настройки Samba-сервера выполните:
* ПРЕДУПРЕЖДЕНИЕ: Выполнение этой программы изменит конфигурационные файлы Samba сервиса. Если вы готовы продолжить выполнение программы, введите 'yes', если нет - 'no': yes * Добавлен ldif файл ... [ ok ] * Запускается Samba ... [ ok ] * Пользователь client добавлен в Unix сервис * Пользователь client добавлен в Samba сервис * Пользователь admin добавлен в Unix сервис * Пользователь admin добавлен в Samba сервис * Samba сервис сконфигурирован ... [ ok ]
В качестве параметров вы можете указать netbios и workgroup.
- -n name - устанавливает имя NetBIOS, под которым будет работать Samba сервер. По умолчанию оно устанавливается равным первому компоненту DNS-имени хоста.
- -w workgroup - имя домена или рабочей группы NT для компьютеров, которые будут получать доступ к этому серверу.
Задайте пароль администратора (пользователь с логином admin):
Новый пароль:
Повторите новый пароль:
* Пароль пользователя admin Samba сервиса изменен
Заметка
Пользователь admin используется только для ввода клиентского компьютера с ОС Windows в домен. Admin не имеет домашней директории.
Если нужен администратор домена для управления компьютерами на Windows, создайте нового пользователя и включите его в доменную группу Domain Admins.
Пример создания администратора домена:
Новый SMB пароль: Повторите новый SMB пароль: * Пользователь d_admin добавлен в Unix сервис * Пользователь d_admin добавлен в Samba сервис
Добавление и удаление пользователей
Для работы с пользователями используйте аналоги стандартных Unix-команд: cl-useradd
, cl-userdel
, cl-usermod
, cl-passwd
, cl-groupadd
, cl-groupdel
, cl-groupmod
. Синтаксис этих команд будет во многом совпадать с одноименными системными утилитами.
Для примера добавьте пользователя test и задайте ему пароль:
* Пользователь test добавлен в Unix сервис * Пользователь test добавлен в Samba сервис
Новый пароль: Повторите новый пароль: * Пароль пользователя Unix сервиса изменен * Пароль пользователя test Samba сервиса изменен
Настройка прав доступа
Настройка прав доступа к файловой системе
Для настройки прав доступа к файлам на сервере используйте ACL (Access Control List — список контроля доступа). Изменяя права на файлы, вы ограничиваете к ним доступ в равной степени как для Windows-, так и для Linux-клиентов. При отсутствии прав доступа к файлам и директориям они не будут отображаться в Samba-ресурсе.
Права доступа применяются как к файлам, так и к директориям. Вы можете указать права доступа на владельца файла, либо на группу. Если Windows-клиент будет распознавать только Samba-группы, то в Linux будут отображаться имена Unix- и Samba-групп. Поэтому, для разграничения прав доступа, предпочтительней использовать Samba-группы.
Для примера создадим Samba-группу manager:
* Группа 'manager' добавлена в Samba сервис
Для создания Unix-группы job, достаточно выполнить:
* Группа 'job' добавлена в Unix сервис
Настройка прав доступа для пользователей Windows-компьютеров
Для настройки дополнительных прав Windows машин, таких как: возможность устанавливать программы, возможность выхода из домена и т.д., используйте Samba группы.
Пример повышения прав пользователя test до администратора домена:
* Пользователи добавлены в группу Domain Admins
Структура Samba-групп
Samba-группы могут быть следующих типов:
- Доменные группы (номер типа группы 2)
- Локальные группы (номер типа группы 4)
- Встроенные группы (номер типа группы 5)
Группы, созданные по умолчанию:
-
Доменные группы - глобальные группы, которые действуют в домене.
- Domain Admins - администраторы домена (полные права на компьютерах в домене).
- Domain Guests - гости домена (минимальные права).
- Domain Users - пользователи домена.
- Domain Computers - компьютеры домена.
-
Локальные группы - группы, действующие локально на данном компьютере.
Локальные группы отсутствуют -
Встроенные группы - группы встроенные в систему.
- Administrators - администраторы (полные права).
- Account Operators - операторы учетных записей. Создание и управление пользовательской учетной информацией, создание и управление группами, резервное копирование файлов и каталогов.
- Backup Operators - операторы архивов. Резервное копирование, восстановление из резервной копии, остановка системы.
- Print Operators - операторы печати. Управление принтерами, резервное копирование.
- Replicators - репликаторы. Эта группа используется службой репликации File Replication на контроллерах домена.
- System Operators - операторы системы. Изменение системного времени, останов системы, останов с удаленной системы, резервное копирование, восстановление из резервной копии, блокирование сервера, преодоление блокировки сервера, форматирование жесткого диска, управление сетевыми каталогами, управление принтерами.
Пример создания доменной группы test. По умолчанию создается доменная группа, тип группы - 2.
* Группа 'test' добавлена в Samba сервис
Пример создания встроенной группы Power Users - пользователей, имеющих дополнительные права.
* Группа 'Power Users' добавлена в Samba сервис
Где:
- g - идентификатор группы
547(Group ID) - rid - уникальный идентификатор
547(RID) - t - тип группы
5(встроенная группа)
Подключение Unix-клиентов
Клиентская машина должна резолвить имя сервера calculate.example.org (hostname -f
). Если у вас не настроен DNS, используйте один из двух вариантов:
- На клиенте пропишите IP адрес сервера в /etc/hosts:
<IP адрес> calculate.example.org
- На сервере отредактируйте файл /var/calculate/remote/calculate.env, прописав в него IP адрес сервера:
[client] sr_samba_host = <IP адрес>
Для подключения Unix-клиентов укажите пароль для служебного пользователя client:
Новый пароль: Повторите новый пароль: * Пароль пользователя client Samba сервиса изменен
На клиентской машине выполните:
* Проверка DOMAIN на наличие доменных ресурсов ... [ ok ] Пароль для ввода рабочей станции в домен: * Samba ресурс [remote] подключен * Применены шаблоны ввода в домен ... * Компьютер настроен для работы в домене * Компьютен добавлен в домен DOMAIN
где DOMAIN - сетевое имя или IP-адрес сервера.
Подключение Windows-клиентов
Важно
В ОС семейства Windows активируйте учетную запись Администратора командой:
net user Администратор /active:yes
Подключение клиента с ОС Windows 7
Для подключения клиента с ОС Windows 7 войдите в систему под учётной записью Администратора и с помощью текстового редактора создайте текстовый файл с именем samba_7_2008_fix.reg со следующим содержимым:
samba_7_2008_fix.reg
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters] "DomainCompatibilityMode"=dword:00000001 "DNSNameResolutionRequired"=dword:00000000
Дважды кликните файл, чтобы импортировать его в реестр. После этого перезагрузитесь, чтобы изменения вступили в силу.
Теперь необходимо ввести компьютер в Samba-домен. Для этого перейдите в свойства компьютера, а оттуда в настройку удалённого доступа. Во вкладке "Имя компьютера" нажмите кнопку "Изменить".
Далее укажите, что компьютер является членом домена, и введите его имя:
Введите имя и пароль пользователя, созданного на Samba-сервере и входящего в группу администраторов домена:
После этого компьютер станет членом домена:
Подключение клиента с ОС Windows 10
Для подключения клиента с ОС Windows 10 войдите в систему под учётной записью Администратора и с помощью текстового редактора создайте текстовый файл с именем samba_7_2008_fix.reg со следующим содержимым:
samba_7_2008_fix.reg
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters] "DomainCompatibilityMode"=dword:00000001 "DNSNameResolutionRequired"=dword:00000000
Дважды кликните файл, чтобы импортировать его в реестр. После этого перезагрузитесь, чтобы изменения вступили в силу.
После этого перезапустите сервис samba:
samba | * samba -> stop: smbd ... [ ok ] samba | * samba -> stop: nmbd ... [ ok ] samba | * samba -> start: smbd ... [ ok ] samba | * samba -> start: nmbd ... [ ok ]
Теперь необходимо ввести компьютер в Samba-домен. Для этого перейдите в свойства компьютера, а оттуда в настройку удалённого доступа. Во вкладке "Имя компьютера" нажмите кнопку "Изменить".
Далее укажите, что компьютер является членом домена, и введите его имя:
Введите имя и пароль пользователя, созданного на Samba-сервере и входящего в группу администраторов домена:
После этого компьютер станет членом домена:
Подключение клиента с ОС Windows Server 2008
Для подключения клиента с ОС Windows 2008 войдите в систему под учётной записью Администратора и с помощью текстового редактора создайте текстовый файл с именем samba_7_2008_fix.reg со следующим содержимым:
samba_7_2008_fix.reg
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters] "DomainCompatibilityMode"=dword:00000001 "DNSNameResolutionRequired"=dword:00000000
Дважды кликните файл, чтобы импортировать его в реестр. После этого перезагрузитесь, чтобы изменения вступили в силу.
Теперь необходимо ввести компьютер в Samba)домен. Для этого перейдите в свойства компьютера, а оттуда в настройку удалённого доступа. Во вкладке "Имя компьютера" нажмите кнопку "Изменить".
Далее укажите, что компьютер является членом домена, и введите его имя:
Введите имя и пароль пользователя, созданного на Samba-сервере и входящего в группу администраторов домена:
После этого компьютер станет членом домена:
Просмотр информации
Для просмотра информации о пользователях и группах сервера используйте утилиту cl-info
. В качестве параметра может выступать один из сервисов: unix или samba.
Пример команды для вывода списка Unix-пользователей:
Все LDAP пользователи для сервиса Unix +------+--------+-----------------------------+------------------+---------------------+ | ID | Логин | Полное имя | Первичная группа | Домашняя директория | +------+--------+-----------------------------+------------------+---------------------+ | 900 | client | Client unix workstation | 900 | /dev/null | | 901 | admin | Administrator samba service | 544 | /dev/null | | 1000 | user1 | Calculate user | user1 | /home/user1 | | 1001 | user2 | Calculate user | user2 | /home/user2 | +------+--------+-----------------------------+------------------+---------------------+ (4 строк)
Пример команды для вывода списка Samba-пользователей:
Все LDAP пользователи для сервиса Samba +--------+-----------------------------+--------------+--------+ | Логин | Полное имя | Заблокирован | Пароль | +--------+-----------------------------+--------------+--------+ | client | Client unix workstation | Нет | Да | | admin | Administrator samba service | Нет | Да | | user1 | Calculate user | Нет | Да | | user2 | Calculate user | Нет | Да | +--------+-----------------------------+--------------+--------+ (4 строк)
Пример команды для просмотра информации о пользователе user1 Unix-сервиса:
Информация о пользователе user1 для сервиса Unix +-----------------------+--------------------------+ | Поле | Значение | +-----------------------+--------------------------+ | ID | 1000 | | Логин | user1 | | Полное имя | Calculate user | | Заблокирован | Нет | | Видимый | Да | | Первичная группа | user1 | | Дополнительные группы | user1 | | | group | | Домашняя директория | /home/user1 | | Оболочка | /bin/bash | | Пароль | Да | | Изменение пароля | 25.09.2018 | | Jabber ID | user1@server.example.com | | Почтовый адрес | usr1@example.com | +-----------------------+--------------------------+ (14 строк)
Пример команды для просмотра информации о пользователе user1 Samba-сервиса:
Информация о пользователе user1 для сервиса Samba +-----------------------+------------------------------------------------------+ | Поле | Значение | +-----------------------+------------------------------------------------------+ | Логин | user1 | | Полное имя | Calculate user | | Заблокирован | Нет | | Пароль | Да | | Изменение пароля | 25.09.2018 | | Дополнительные группы | Нет | | Домашняя директория | /var/calculate/server-data/samba/home/user1 | | Общая директория | /var/calculate/server-data/samba/share | | Linux профиль | /var/calculate/server-data/samba/profiles/unix/user1 | | Windows профиль | /var/calculate/server-data/samba/profiles/win/user1 | | Windows logon | /var/calculate/server-data/samba/netlogon/user1 | +-----------------------+------------------------------------------------------+ (11 строк)
Пример команды для вывода списка Unix-групп:
Все LDAP группы для сервиса Unix +------------+--------------------+------+ | Группа | Полное имя | GID | +------------+--------------------+------+ | maildomain | Default Mail Users | 1000 | | user1 | Calculate group | 1001 | | user2 | Calculate group | 1002 | | group | Calculate group | 1003 | +------------+--------------------+------+ (4 строк)
Пример команды для вывода списка Samba-групп:
Все LDAP группы для сервиса Samba +-------------------+-----+-------------------+ | Группа | GID | Тип группы | +-------------------+-----+-------------------+ | System Operators | 549 | встроенная группа | | Print Operators | 550 | встроенная группа | | Domain Guests | 514 | доменная группа | | Domain Admins | 512 | доменная группа | | Account Operators | 548 | встроенная группа | | Domain Users | 513 | доменная группа | | Administrators | 544 | встроенная группа | | client | 900 | доменная группа | | Backup Operators | 551 | встроенная группа | | Replicators | 552 | встроенная группа | | Domain Computers | 515 | доменная группа | +-------------------+-----+-------------------+ (11 строк)
Пример команды для просмотра информации о группе group Unix-сервиса:
+-----------------------+-----------------+ | Поле | Значение | +-----------------------+-----------------+ | Группа | group | | Полное имя | Calculate group | | GID | 1003 | | Пользователи в группе | user1 | | | user2 | +-----------------------+-----------------+ (5 строк)
Пример команды для просмотра информации о группе Domain Users Samba-сервиса:
Информация о группе Domain Users для сервиса Samba +-----------------------+-----------------+ | Поле | Значение | +-----------------------+-----------------+ | Группа | Domain Users | | Полное имя | Domain Users | | GID | 513 | | Тип группы | доменная группа | | Пользователи в группе | Нет | +-----------------------+-----------------+ (5 строк)