Настройка файлового сервера samba с интеграцией в active directory
Содержание:
- Структура Samba-групп
- Как создать общую сетевую папку в Samba
- System Config Samba
- Provisioning Samba AD in Interactive Mode
- Ubuntu Clients
- Turn on Public Folder Sharing in Windows 11
- Cетевой обмен по протоколу SMB / SAMBA
- Provisioning Samba AD in Non-interactive Mode
- Setting up the AD DNS back end
- Configuring the DNS Resolver
- Create a reverse zone
- Configuring Kerberos
- Testing your Samba AD DC
- Команды SMB в Linux
Структура Samba-групп
Samba-группы могут быть следующих типов:
- (номер типа группы )
- (номер типа группы )
- (номер типа группы )
Группы, созданные по умолчанию:
-
Доменные группы — глобальные группы, которые действуют в домене.
- — администраторы домена (полные права на компьютерах в домене).
- — гости домена (минимальные права).
- — пользователи домена.
- — компьютеры домена.
-
Локальные группы — группы, действующие локально на данном компьютере.
Локальные группы отсутствуют -
Встроенные группы — группы встроенные в систему.
- — администраторы (полные права).
- — операторы учетных записей. Создание и управление пользовательской учетной информацией, создание и управление группами, резервное копирование файлов и каталогов.
- — операторы архивов. Резервное копирование, восстановление из резервной копии, остановка системы.
- — операторы печати. Управление принтерами, резервное копирование.
- — репликаторы. Эта группа используется службой репликации File Replication на контроллерах домена.
- — операторы системы. Изменение системного времени, останов системы, останов с удаленной системы, резервное копирование, восстановление из резервной копии, блокирование сервера, преодоление блокировки сервера, форматирование жесткого диска, управление сетевыми каталогами, управление принтерами.
Пример создания доменной группы test. По умолчанию создается доменная группа, тип группы — .
cl-groupadd test samba
* Группа 'test' добавлена в Samba сервис
Пример создания встроенной группы Power Users — пользователей, имеющих дополнительные права.
cl-groupadd -g 547 —rid 547 -t 5 ‘Power Users’ samba
* Группа 'Power Users' добавлена в Samba сервис
Где:
-
— идентификатор группы
547(Group ID) -
— уникальный идентификатор
547(RID) -
— тип группы
5(встроенная группа)
Как создать общую сетевую папку в Samba
Если в этой статье вы пропустили предыдущие части, так как вам нужно только настроить файловый сервер на Linux, то начните с установки пакета samba.
Следующая команда не сработает, если отсутствует файл /etc/samba/smb.conf. Если у вас тоже нет этого файла, то создаёте его заглушку — к настройке самого файла smb.conf мы вернёмся позже:
sudo touch /etc/samba/smb.conf
Теперь нужно добавить пароль для пользователя Samba. Действует следующее правило: имя пользователя должно быть таким же, как у вашего текущего пользователя, а пароль можно установить иной, отличный от вашего системного пароля.
Для установки пароля Samba, выполните следующую команду:
sudo smbpasswd -a $USER
Если вы хотите, чтобы у пользователя не было пароля, то укажите опцию -n.
Создайте папку, которая станет совместно используемой:
mkdir ~/linuxshare
Узнаем абсолютный путь до папки ~/linuxshare:
realpath ~/linuxshare
У меня это:
/home/mial/linuxshare
Откройте для редактирования файл /etc/samba/smb.conf:
sudo gedit /etc/samba/smb.conf
Добавьте туда строки вида:
comment = Samba на Linux path = /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/ИМЯ_ПАПКИ valid users = ИМЯ_ПОЛЬЗОВАТЕЛЯ read only = no browsable = yes
Обратите внимание, что все пробелы в строках выше являются обязательными.
Для моих данных это строки:
comment = Samba на Linux path = /home/mial/linuxshare valid users = mial read only = no browsable = yes
Теперь запустим службу SMB:
sudo systemctl start smb.service
Для добавления службы в автозагрузку выполните:
sudo systemctl enable smb.service
На самом деле, мы настроили не полноценную Samba, а только файловый сервер SMB. Одно из следствий этого — показанные выше способы обнаружения сетевых папок, такие как команда smbtree в Linux или переход во вкладку «Сеть» в проводнике Windows, не обнаружат нашу шару.
Для подключения к этой общей сетевой папке на Linux нужно использовать IP адреса компьютера Linux вместо имени компьютера, как это мы делали раньше. Кстати, поэтому нужно настроить статичный IP (смотрите статью «Как настроить Linux на использование статичного IP адреса»).
Создадим файл, чтобы сетевая папка не была пустой:
echo "Документ на Linux" > ~/linuxshare/document.txt
Посмотрите локальный IP адрес компьютера, на котором запущена Linux:
ip a
У меня этим IP является 192.168.0.89, а папку, как мы помним, я создал с именем linuxshare, тогда в Windows я перехожу в проводнике во вкладку «Сеть» и подключаюсь к этой папке следующим образом:
\\192.168.0.89\linuxshare
Вводим учётные данные (которые мы установили командой smbpasswd):
Видим содержимое совместно используемой папки, размещённой на Linux с помощью SMB:
Для подключения к сетевой папке из консоли Linux, запустите команду вида:
sudo smbclient //IP_АДРЕС/Папка -U ПОЛЬЗОВАТЕЛЬ
Для моего примера это:
sudo smbclient //192.168.0.89/linuxshare -U mial
После ввода пароля нам становится доступным содержимое сетевой папки.
Эту папку можно смонтировать как это было показано в предыдущем разделе, либо подключать в Windows как , как это было показано в первой части.
System Config Samba
Графический интерфейс (GUI) способен во многом облегчить процесс настройки Samba в Ubuntu. Как минимум, пользователю, который только перешел на Linux, этот способ покажется более понятным.
Шаг 1: Установка
Изначально нужно установить специальную программу в систему, которая обладает интерфейсом и которая необходима для осуществления настройки. Сделать это можно с помощью «Терминала», выполнив команду:
Если до этого вы не устанавливали все компоненты Samba себе на компьютер, вам нужно будет вместе с ней загрузить и установить еще некоторые пакеты:
После того как все необходимое было установлено, можно переходить непосредственно к настройке.
Шаг 2: Запуск
Запустить System Config Samba можно двумя способами: с помощью «Терминала» и через меню Bash.
Способ 1: Терминал
Если вы решили использовать «Терминал», то вам необходимо сделать следующее:
- Нажмите сочетание клавиш Ctrl+Alt+T.
-
Введите следующую команду:
- Нажмите Enter.
Далее вам потребуется ввести системный пароль, после чего откроется окно программы.
Способ 2: Меню Bash
Второй способ многим покажется проще, так как все операции выполняются в графическом интерфейсе.
- Нажмите на кнопку меню Bash, которая находится в верхнем левом углу рабочего стола.
Введите в открывшемся окне поисковой запрос «Samba».
Нажмите по одноименной программе в разделе «Приложения».
После этого система запросит у вас пароль пользователя. Введите его и программа откроется.
Шаг 3: Добавление пользователей
Перед тем как приступать непосредственно к настройке папок Samba нужно добавить пользователей. Делается это через меню настроек программы.
- Нажмите по пункту «Настройка» на верхней панели.
В меню выберите пункт «Пользователи Samba».
В появившемся окне нажмите «Добавить пользователя».
В выпадающем списке «Имя пользователя Unix» выберите пользователя, которому будет разрешено входить в папку.
Вручную введите имя пользователя Windows.
Введите пароль, а затем повторите его ввод в соответствующем поле.
Нажмите кнопку «ОК».
Таким образом вы можете добавить одного или нескольких пользователей Samba, а в будущем определить их права.
Шаг 4: Настройка сервера
Теперь нужно приступить к настройке сервера Samba. Это действие выполняется на порядок проще в графическом интерфейсе. Вот что нужно сделать:
- В главном окне программы нажмите по пункту «Настройка» на верхней панели.
Из списка выберите строку «Параметры сервера».
В появившемся окне, во вкладке «Основной», введите в строке «Рабочая группа» название группы, все компьютеры которой смогут подключаться к серверу Samba.
Введите описание группы. При желании можете оставить значение по умолчанию, этот параметр ни на что не влияет.
Перейдите на вкладку «Безопасность».
Определите режим аутентификации как «Пользователь».
Выберите из выпадающего списка «Шифровать пароли» интересующий вас вариант.
Выберите гостевую учетную запись.
Нажмите «ОК».
После этого настройка сервера будет окончена, можно переходить непосредственно к созданию папок Samba.
Шаг 5: Создание папок
Если ранее вы не создавали общедоступные папки, то окно программы будет пустым. Для создания новой папки, вам нужно выполнить следующее:
- Кликните по кнопке с изображением знака плюс.
В открывшемся окне, во вкладке «Основной», нажмите «Обзор».
В файловом менеджере укажите нужную папку для ее расшаривания.
В зависимости от предпочтений, поставьте галочки рядом с «Запись разрешена» (пользователю будет позволено редактировать файлы в общедоступной папке) и «Виден» (на другом ПК добавляемая папка будет видна).
Перейдите во вкладку «Доступ».
На ней есть возможность определить пользователей, которым будет разрешено открывать расшаренную папку. Для этого поставьте отметку рядом с «Предоставить доступ только определенным пользователям». После этого нужно выбрать их из списка.
Если вы собираетесь сделать общедоступную папку, то поставьте переключатель в положение «Предоставить доступ всем».
Нажмите кнопку «ОК».
После этого в главном окне программы будет отображаться только что созданная папка.
При желании вы можете создать еще несколько папок, используя вышеприведенную инструкцию, или же изменить уже созданные, нажав по кнопке «Изменить свойства выбранного каталога».
Как только вы создадите все нужные папки, можете закрывать программу. На этом инструкция по настройке Samba в Ubuntu с помощью программы System Config Samba окончена.
Provisioning Samba AD in Interactive Mode
To provision a Samba AD interactively, run:
# samba-tool domain provision --use-rfc2307 --interactive Realm : SAMDOM.EXAMPLE.COM Domain : SAMDOM Server Role (dc, member, standalone) : dc DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) : SAMBA_INTERNAL DNS forwarder IP address (write 'none' to disable forwarding) : 8.8.8.8 Administrator password: Passw0rd Retype password: Passw0rd Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned Setting up share.ldb Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema Adding DomainDN: DC=samdom,DC=example,DC=com Adding configuration container Setting up sam.ldb schema Setting up sam.ldb configuration data Setting up display specifiers Modifying display specifiers Adding users container Modifying users container Adding computers container Modifying computers container Setting up sam.ldb data Setting up well known security principals Setting up sam.ldb users and groups Setting up self join Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,DC=samdom,DC=example,DC=com Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions Setting up sam.ldb rootDSE marking as synchronized Fixing provision GUIDs A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf Setting up fake yp server settings Once the above files are installed, your Samba4 server will be ready to use Server Role: active directory domain controller Hostname: DC1 NetBIOS Domain: SAMDOM DNS Domain: samdom.example.com DOMAIN SID: S-1-5-21-2614513918-2685075268-614796884
Ubuntu Clients
Ubuntu and Gnome make it easy to access files on a Windows network share. Open the Places Menu, then click on Network. You will see a Windows network icon. Double-click to open it. The next window shows all the domains/workgroups found on your network. Inside each domain/workgroup you will see all the computers on the domain/workgroup with sharing enabled. Double-click on a computer icon to access its shares and files.
If you want to be able to share folders with nautilus (the file browser), install the nautilus-share package (installed by default in Ubuntu 9.10 Desktop edition):
sudo apt-get install nautilus-share
Alternate: From the menu at the top select «Location» -> «Connect to a server». In the «Service type» pull down select «Windows share». Enter the server ip address in the «Server:» box and the share name in the «Share:» box. Click «Connect» and then «Connect» again on the second dialog box
Alternate 12.04: Double clicking on ‘Windows network’ did not work for me. So I went to ‘Go’ menu in the nautilus file browser and clicked ‘Location’. I got an address bar at the top of the window. I entered «smb://192.168.2.148» (substitute the IP address of your Samba server) — I was presented with user/password window — After typing in user/passwd I was able to see the samba shares on the server and browse the files/folders.
Note: The default installation of Samba does not synchronize passwords. You may have to run «smbpasswd» for each user that needs to have access to his Ubuntu home directory from Microsoft Windows.
Turn on Public Folder Sharing in Windows 11
Use the steps below to setup file sharing.
Windows 11 has a centralized location for majority of its settings. From system configurations to creating new users and updating Windows, all can be done from its System Settings pane.
However, change account username is still done in the old Control Panel. To get to Control Panel, you can click on Start and start typing Control Panel as shown in the image below:
In the Control Panel, select Network and Internet as highlighted in the image below.
On the next pane, select Network and Sharing Center as highlighted below.
Next, select Change advanced sharing settings as highlighted below.
In the Advanced sharing center, select the Private (current profile) and Turn on file and printer sharing.
Save your changes and exit.
On the same Advance sharing options page, scroll down All networks.
There you should see settings for Public folder sharing, Media streaming, File sharing connections and Password protected sharing. Windows should automatically turn on file and printer sharing in private networks. However, in some instances, this will not be enabled.
If you can not automatically find printers and shared resources in your private network, then File sharing option may be disabled.
If you enable password protected sharing, only people who have accounts on the local computer or in domain environment will be able to access shared files and printers.
Make your changes and save, then exit.
The settings above can easily be done using the commands below when run as administrator.
You must open the command prompt as administrator to run the commands above.
Cетевой обмен по протоколу SMB / SAMBA
Одним из способов доступа с STB к файлам, расположенным на сетевых компьютерах, является протокол общего доступа SMB, который является стандартным протоколом Microsoft Windows и обеспечивает функции «Сети Microsoft Windows» и «Совместного использования файлов и принтеров» . Samba – свободная реализация протокола SMB для UNIX-подобных и других операционных систем.
Применение протоколов SMB / Samba позволяет осуществлять доступ с STB (работает под управлением ОС Linux) к папкам и файлам, расположенным на сетевых компьютерах (работающих под управлением ОС Linux, Windows и др.). Таким образом, пользователи STB получают возможность проигрывать на STB медиа-файлы (видео, аудио, изображения), которые расположены на сетевых компьютерах, работающих под управлением одного из типов ОС, поддерживающей протокол SMB.
Протокол SMB / Samba является прикладным протоколом (в терминах сетевой модели OSI). Для обмена данными используется транспортный протокол TCP/IP. Протокол SMB / Samba использует архитектуру клиент – сервер: в качестве сервера выступает ПК, на котором размещаются определенные сетевые ресурсы (папки) с медиа-файлами, в качестве клиента – STB, с которого медиа-файлы проигрываются.
Сетевые ресурсы (в виде ярлыков) отображаются в STB, в меню Home media, в соответствии со стандартной сетевой LAN-архитектурой ОС Windows: Сеть / Рабочая группа / Компьютер / Папка.
По умолчанию, доступ к ресурсам компьютера закрыт настройками на стороне компьютера. При необходимости получить доступ к определенной сетевой папке, пользователь компьютера открывает доступ к этой папке. Для управления доступом к папкам используется процедура ОС Windows «Общий доступ к файлам».
Предусмотрены два типа сетевого доступа к папкам (тип доступа определяется на стороне сервера):
- по паролю – для доступа к сетевой папке со стороны STB используется процедура Авторизации (необходимо ввести имя (login) определенного пользователя компьютера и его пароль (password);
- без пароля – доступ к сетевой папке открыт для всех пользователей, без необходимости вводить пароль.
Обнаружение общих сетевых ресурсов на стороне STB происходит автоматически (если это не запрещено на стороне компьютера или кроме случаев, связанных с некорректной работой сети). Соединение с сетевой папкой устанавливается, когда пользователь STB открывает сетевую папку. Если используется доступ к папке по паролю, пользователю выдается запрос указать login и password.
Также предусмотрена возможность ручного подключения сетевых папок (если они не были обнаружены автоматически). Настройка и доступ к ресурсам сети по протоколу SMB Samba на STB проводится в меню Home media.
Ниже рассмотрен пример, как подключить сетевую папку ПК с ОС Windows 10 для воспроизведения медиа-файлов с STB.
Provisioning Samba AD in Non-interactive Mode
For example, to provision a Samba AD non-interactively with the following settings:
- Server role:
- NIS extensions enabled
- Internal DNS back end
- Kerberos realm and AD DNS zone:
- NetBIOS domain name:
- Domain administrator password:
# samba-tool domain provision --server-role=dc --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=SAMDOM.EXAMPLE.COM --domain=SAMDOM --adminpass=Passw0rd
Setting up the AD DNS back end
Skip this step if you provisioned the DC using the DNS back end.
Set up the BIND DNS server and the BIND9_DLZ module. For details, see Setting up a BIND DNS Server.
Start the BIND DNS server. For example:
# systemctl start named
- For details how to start services, see you distribution’s documentation.
Configuring the DNS Resolver
Domain members in an AD use DNS to locate services, such as LDAP and Kerberos. For that, they need to use a DNS server that is able to resolve the AD DNS zone.
On your DC, set the AD DNS domain in the and the IP of your DC in the parameter of the file. For example:
search samdom.example.com nameserver 10.99.0.1
Create a reverse zone
You can optionally add a reverse lookup zone.
# samba-tool dns zonecreate <Your-AD-DNS-Server-IP-or-hostname> 0.99.10.in-addr.arpa Password for : Zone 0.99.10.in-addr.arpa created successfully
If you need more than one reverse zone (multiple subnets), just run the above command again but with the data for the other subnet.
The reverse zone is directly live without restarting Samba or BIND.
Configuring Kerberos
In an AD, Kerberos is used to authenticate users, machines, and services.
During the provisioning, Samba created a Kerberos configuration file for your DC. Copy this file to your operating system’s Kerberos configuration. For example:
# cp /usr/local/samba/private/krb5.conf /etc/krb5.conf
The pre-created Kerberos configuration uses DNS service (SRV) resource records to locate the KDC.
Testing your Samba AD DC
To start the service manually, enter:
# samba
Samba does not provide System V init scripts, , , or other services configuration files.
- If you installed Samba using packages, use the script or service configuration file included in the package to start Samba.
- If you built Samba, see Managing the Samba AD DC Service.
Команды SMB в Linux
Доступны следующие интерактивные команды:
help
Для показа справки по определённой команде, выполните
help КОМАНДА
cd ПАПКА
Переход в другую директорию на локальной системе:
lcd
Удаление файла в шаре:
del ИМЯ_ФАЙЛА
Имеется псевдоним этой команды:
rm ИМЯ_ФАЙЛА
И ещё одна команда со схожей функцией:
deltree ШАБЛОН_ИМЕНИ
Эта команда рекурсивно удалить все совпавшие с шаблоном имени файлы и директории.
dir
Имеется псевдоним этой команды:
ls
И ещё один, даже более короткий псевдоним:
l
Скачать файлы с общей папки:
get <ИМЯ_УДАЛЁННОГО_ФАЙЛА>
Для повторного скачивания файла:
reget <ИМЯ_УДАЛЁННОГО_ФАЙЛА>
Для скачивания всех файлов, чьём имя совпадает с шаблоном:
mget ШАБЛОН_ИМЕНИ
Например, чтобы скачать все файлы с файловым расширением .exe нужно запустить такую команду:
mget "*.exe"
Для каждого файла, совпавшего с шаблоном, будет выполнен запрос на скачивание. Если вы действительно хотите его скачать, то нажмите клавишу «y»:
Get file ChromeSetup.exe? y
Также имеется команда newer, которая скачивает файлы (mget), которые новее, чем указанный локальный файл. Используется она так:
newer ФАЙЛ
Выгрузка файла на общую папку:
put <ЛОКАЛЬНОЕ_ИМЯ>
Следующая команда скопирует локальный файл в шару:
print ИМЯ_ФАЙЛА
Повторная закачка файла:
reput <ЛОКАЛЬНОЕ_ИМЯ>
Для закачки всех файлов, чьём имя совпадает с шаблоном:
mput ШАБЛОН_ИМЕНИ
К примеру, чтобы закачать в шару все файлы (из локальной текущей рабочей директории), которые имеют расширение *.cap, нужно запустить команду:
mput "*.cap"
Для каждого файла, совпавшего с шаблоном, будет выполнен запрос подтверждения, если вы действительно хотите его закачать, то нажмите клавишу «y»:
Put file wpa.cap? y putting file wpa.cap as \wpa.cap (335,2 kb/s) (average 277,8 kb/s) Put file wep.cap? y putting file wep.cap as \wep.cap (0,6 kb/s) (average 169,1 kb/s)
Используя команду:
recurse
Можно включать и отключать рекурсивный режим для mget и mput.
Показ всей возможной информации о файле:
allinfo ФАЙЛ
Пример:
allinfo all-databases.sql altname: ALL-DA~1.SQL create_time: Чт авг 29 12:29:51 2019 MSK access_time: Вс янв 5 23:31:47 2020 MSK write_time: Ср авг 1 09:51:25 2018 MSK change_time: Вс янв 5 19:48:36 2020 MSK attributes: A (20) stream: , 381945262 bytes
В выводимой информации можно увидеть альтернативное (DOS) имя, временные метки (дата создания, доступа, записи и изменения файла), атрибуты.
md ДИРЕКТОРИЯ
Псевдоним:
mkdir ДИРЕКТОРИЯ
rd ДИРЕКТОРИЯ
Псевдоним команды:
rmdir ДИРЕКТОРИЯ
Удаление файлов
Следующая команда удалит все совпавшие с МАСКОЙ файлы:
rm МАСКА
Псевдоним команды для удаления файлов:
del МАСКА
С помощью команды wdel можно удалить все совпавшие файлы по подстановочным символам:
wdel АТРИБУТЫ МАСКА
Ссылки
Создание жёсткой ссылки Windows:
hardlink ИСТОЧНИК НАЗНАЧЕНИЕ
Создание жёсткой ссылки UNIX:
link СТАРОЕ_ИМЯ НОВОЕ_ИМЯ
Создание символьной ссылки UNIX:
symlink СТАРОЕ_ИМЯ НОВОЕ_ИМЯ
q
Псевдоним:
quit
Второй псевдоним:
exit
Показ текущей рабочей директории:
pwd
Пример вывода:
Current directory is \\HACKWARE-MIAL\Share\
Другой вариант показа текущей рабочей директории — это команда cd без аргументов:
cd
Пример вывода:
Current directory is \
Создание и извлечение архивов tar
Программа tar используется для объединения нескольких файлов в один файл. Объединение происходит без сжатия. Для того, чтобы несколько файлов из сетевой папки объединить в архив и скачать на локальную систему запустите команду вида:
tar c АРХИВ.tar ФАЙЛ1 ФАЙЛ2 ФАЙЛ3
К примеру, я хочу скачать файлы all-databases.sql besside.log ChromeSetup.exe из совместной папки и объединить их в архив all.tar, тогда моя команда следующая:
tar c all.tar all-databases.sql besside.log ChromeSetup.exe
Если нужно разархивировать файл на локальной системе и всё его содержимое отправить на удалённую общую папку, то запустите команду вида:
tar x АРХИВ.tar
К примеру, я хочу отправить содержимое архива all.tar в общую папку:
tar x all.tar
Для установления режимов tar используется команда
tarmode <full|inc|reset|noreset>
timeout <ЧИСЛО>
Таймаут устанавливается в секундах и по умолчанию равен 20.
Выполнение команд в локальной системе:
!КОМАНДА
Чтобы команда выполнялась не на удалённой системе, а на локальной, поставьте перед ней ! (восклицательный знак), например^
!ls -l