Настраиваем samba в ubuntu
Содержание:
- Samba как DC
- Общие папки (Shared Folders)
- LDAP Configuration
- Завершающие команды
- Проверка результатов Назначения
- Создание реверсивных зон
- Структура Samba-групп
- Подключение Windows-клиентов
- Подготовка системы (Debian 9 Stretch)
- Инструмент wbinfo
- Настройка хостов — участников домена для входа доменных пользователей
- Установка
- Организация доступа к Windows с помощью клиента smbclient
- Conclusion
- ШАГ 6: Утилиты и диагностика Samba
- Step 6: Configure Samba Private Share
- Настройка Samba в Debian
- Настройка Samba в Ubuntu 16.04
Samba как DC
Но за всё надо платить, ибо самый популярный для таких целей Windows Server с Active Direcory на борту не бесплатный, а потому в последнее время с развитием пакета программ Samba 4 есть возможность использования Samba в качестве контроллера домена с применением групповых политик. О Samba 4 и последующей настройке и будет дальнейшее содержание данной статьи.
По своей сути Samba 4 есть Open-Source реализация Active Directory и, согласно документации, является стабильным вариантом применения в качестве домен-контроллера в production-среде.
Одним из минусов является отсутствие поддержки репликации Sysvol через DFS-R (условно говоря, sysvol – это директория с параметрами групповых политик, сценариев входа\выхода из системы и при использовании нескольких контроллеров домена, должна быть реплицирована на все имеющиеся контроллеры в домене). Samba пока что так не умеет, а потому есть решения с использованием rsync или более сложные и гибкие варианты. Но об этом в данном материале рассказано не будет.
В ранних версиях было ограничение размера БД до 4 гб в Samba при использовании в качестве контроллера домена, но данный вопрос был решён в версии 4.9 – реализован бэкенд LDB (экспериментальный), основанный на библиотеке LMDB, что в итоге позволяет создавать базы данных объемом свыше 4 гб. Для включения данного параметра нужно использовать ключ –backend-store=mdb. В данной статье, дабы не усложнять материал, обойдемся без данного ключа.
Так как мы интегрируем Samba с Active Directory, то и управление правами доступа на общие папки будет гораздо удобней назначать из ОС Windows.
Учетные записи которые могут настраивать права на общие папки, нуждаются в привилегиях SeDiskOperatorPrivilege. Чтобы посмотреть текущий список привилегий на хосте, выполним команду:
1 | net rpc rights list accounts-U’JAKONDA\jakonda’ |
Результат выполнения:
1 14 22 |
BUILTIN\Print Operators No privileges assigned BUILTIN\Account Operators No privileges assigned BUILTIN\Backup Operators No privileges assigned BUILTIN\Server Operators No privileges assigned SeMachineAccountPrivilege SeSecurityPrivilege No privileges assigned |
Выдадим разрешение SeDiskOperatorPrivilege группе «Администраторы домена» (Domain Admins), командой:
1 |
net rpc rights grant’JAKONDA\Domain Admins’SeDiskOperatorPrivilege-U’JAKONDA\jakonda’ ENTER JAKONDA\JAKONDA’SPASSWORD SUCCESSFULLY GRANTED RIGHTS. |
Теперь можно приступать к созданию общих папок. Для примера рассмотрим создание общей папки PUBLIC.
Создаем папку и выставляем права доступа на нее:
1 |
mkdir-psambapublic chown»администраторы домена»»пользователи домена»sambapublic chmod770sambapublic |
В файле конфигурации Samba (/etc/samba/smb.conf) описываем параметры общей папки:
1 |
PUBLIC path=sambapublic read only=no #АналогтехнологииAccess-based Enumeration(ABE—Перечислениенаоснованиидоступа) hide unreadable=yes #hide unwriteable files=yes |
Если необходимо сделать общую папку невидимой, то в параметрах необходимо в название общей папки символ $ — . В этом случае общая папка не будет видна при обзоре сети и войти в нее можно будет указав полный путь к ней.
Если необходимо задать наследование владельца от родительской папки для создаваемых файлов и папок, то делается это параметром: inherit owner = yes
Для применения изменений перечитываем конфигурацию Samba, командой:
1 | etcinit.dsmbd reload |
Далее все настройку прав доступа выполняем из оснастки Управление компьютером (Computer Manager).
Запускаем от администратора Управление компьютером (Computer Manager) (Меню ПУСК -> Выполнить -> compmgmt.msc). Подключится к другому компьютеру… и указываем компьютер
После подключения к системе, переходим в «Общие папки» — «Общие ресурсы» и видим нашу общую папку PUBLIC, далее привычным методом выставляем все необходимые права доступа на нее.
Так же через оснастку Управление компьютером (Computer Manager) удобно смотреть активные пользовательские сеансы и какие файлы открыты в общих папках. При необходимости можно завершить пользовательский сеанс или закрыть открытый файл.
Для тех у кого есть желание поблагодарить, могут воспользоватся формой ниже:
LDAP Configuration
We will now configure the LDAP server so that it can accomodate Samba data. We will perform three tasks in this section:
-
Import a schema
-
Index some entries
-
Add objects
Samba schema
In order for OpenLDAP to be used as a backend for Samba, the DIT will need to use attributes that can properly describe Samba data. Such attributes can be obtained by introducing a Samba LDAP schema. Let’s do this now.
The schema is found in the now-installed samba package and is already in the ldif format. We can import it with one simple command:
To query and view this new schema:
Samba indices
Now that slapd knows about the Samba attributes, we can set up some indices based on them. Indexing entries is a way to improve performance when a client performs a filtered search on the DIT.
Create the file with the following contents:
Using the ldapmodify utility load the new indices:
If all went well you should see the new indices using ldapsearch:
Adding Samba LDAP objects
Next, configure the smbldap-tools package to match your environment. The package comes with a configuration helper script called smbldap-config. Before running it, though, you should decide on two important configuration settings in :
-
netbios name: how this server will be known. The default value is derived from the server’s hostname, but truncated at 15 characters.
-
workgroup: the workgroup name for this server, or, if you later decide to make it a domain controller, this will be the domain.
It’s important to make these choices now because smbldap-config will use them to generate the config that will be later stored in the LDAP directory. If you run smbldap-config now and later change these values in there will be an inconsistency.
Once you are happy with netbios name and workgroup, proceed to generate the smbldap-tools configuration by running the configuration script which will ask you some questions:
Some of the more important ones:
-
workgroup name: has to match what you will configure in later on.
-
ldap suffix: has to match the ldap suffix you chose when you configured the LDAP server.
-
other ldap suffixes: they are all relative to ldap suffix above. For example, for ldap user suffix you should use ou=People, and for computer/machines, use ou=Computers.
-
ldap master bind dn and bind password: use the rootDN credentials.
The smbldap-populate script will then add the LDAP objects required for Samba. It will ask you for a password for the “domain root” user, which is also the “root” user stored in LDAP:
The -g, -u and -r parameters tell smbldap-tools where to start the numeric uid and gid allocation for the LDAP users. You should pick a range start that does not overlap with your local /etc/passwd users.
You can create a LDIF file containing the new Samba objects by executing . This allows you to look over the changes making sure everything is correct. If it is, rerun the script without the ‘-e’ switch. Alternatively, you can take the LDIF file and import its data per usual.
Your LDAP directory now has the necessary information to authenticate Samba users.
Завершающие команды
После успешного выполнения команды Назначения:
# Разрешить автоматический запуск службы контроллера домена:sudo systemctl unmask samba-ad-dcsudo systemctl enable samba-ad-dc
# Скопировать автоматически созданную конфигурацию службы Kerberossudo cp -b /var/lib/samba/private/krb5.conf /etc/krb5.conf
# Запустить доменную службу Samba sudo systemctl start samba-ad-dc
Проверка результатов Назначения
Подробно команды для проверки результатов настройки контроллера домена описаны в статье Присоединение Samba к существующему домену AD. Разница только в том, что домена AD сейчас нет, сервер только один, соответственно, опрашивать нужно только один сервер, и в ответах будет только один сервер.
Создание реверсивных зон
С помощью команды samba-tool dns zonecreate можно добавить необязательную зону реверсивного поиска:
samba-tool dns zonecreate samdom.example.com 2.0.10.in-addr.arpa -U Administrator
Password for :Zone 2.0.10.in-addr.arpa created successfully
Если требуется использовать несколько реверсивных зон, просто выполните команду несколько раз с указанием параметров соответствующих подсетей.Изменение реверсивных зон не требует перезапуска сервисов Samba или BIND.
Структура 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(встроенная группа)
Подключение Windows-клиентов
Важно
В ОС семейства Windows активируйте учетную запись Администратора командой:
Подключение клиента с ОС Windows 7
Для подключения клиента с ОС Windows 7 войдите в систему под учётной записью Администратора и с помощью текстового редактора создайте текстовый файл с именем со следующим содержимым:
samba_7_2008_fix.reg
Windows Registry Editor Version 5.00 "DomainCompatibilityMode"=dword:00000001 "DNSNameResolutionRequired"=dword:00000000
Дважды кликните файл, чтобы импортировать его в реестр. После этого перезагрузитесь, чтобы изменения вступили в силу.
Теперь необходимо ввести компьютер в Samba-домен. Для этого перейдите в свойства компьютера, а оттуда в настройку удалённого доступа. Во вкладке «Имя компьютера» нажмите кнопку «Изменить».
Далее укажите, что компьютер является членом домена, и введите его имя:
Введите имя и пароль пользователя, созданного на Samba-сервере и входящего в группу администраторов домена:
После этого компьютер станет членом домена:
Подключение клиента с ОС Windows 10
Для подключения клиента с ОС Windows 10 войдите в систему под учётной записью Администратора и с помощью текстового редактора создайте текстовый файл с именем со следующим содержимым:
samba_7_2008_fix.reg
Windows Registry Editor Version 5.00 "DomainCompatibilityMode"=dword:00000001 "DNSNameResolutionRequired"=dword:00000000
Дважды кликните файл, чтобы импортировать его в реестр. После этого перезагрузитесь, чтобы изменения вступили в силу.
Отредактируйте файл на сервере, добавив в секцию «global»м следующее:
/etc/samba/smb.conf
... server max protocol = NT1 ...
После этого перезапустите сервис samba:
/etc/init.d/samba restart
samba | * samba -> stop: smbd ... samba | * samba -> stop: nmbd ... samba | * samba -> start: smbd ... samba | * samba -> start: nmbd ...
Теперь необходимо ввести компьютер в Samba-домен. Для этого перейдите в свойства компьютера, а оттуда в настройку удалённого доступа. Во вкладке «Имя компьютера» нажмите кнопку «Изменить».
Далее укажите, что компьютер является членом домена, и введите его имя:
Введите имя и пароль пользователя, созданного на Samba-сервере и входящего в группу администраторов домена:
После этого компьютер станет членом домена:
Подключение клиента с ОС Windows Server 2008
Для подключения клиента с ОС Windows 2008 войдите в систему под учётной записью Администратора и с помощью текстового редактора создайте текстовый файл с именем со следующим содержимым:
samba_7_2008_fix.reg
Windows Registry Editor Version 5.00 "DomainCompatibilityMode"=dword:00000001 "DNSNameResolutionRequired"=dword:00000000
Дважды кликните файл, чтобы импортировать его в реестр. После этого перезагрузитесь, чтобы изменения вступили в силу.
Теперь необходимо ввести компьютер в Samba)домен. Для этого перейдите в свойства компьютера, а оттуда в настройку удалённого доступа. Во вкладке «Имя компьютера» нажмите кнопку «Изменить».
Далее укажите, что компьютер является членом домена, и введите его имя:
Введите имя и пароль пользователя, созданного на Samba-сервере и входящего в группу администраторов домена:
После этого компьютер станет членом домена:
Подготовка системы (Debian 9 Stretch)
Перед началом выполнения ниже описанных действий обновляем систему до актуального состояния:
1 | apt-get update&&apt-get upgrade-y |
Указываем FQDN (Fully Qualified Domain Name) имя системы, в файле (/etc/hostname):
1 | datastore1.jakonda.local |
Так же файл (/etc/hosts) приводим к виду таким образом, чтобы в нём была запись с полным доменным именем компьютера и с коротким именем, ссылающаяся на один из внутренних IP:
1 |
127.0.0.1localhost 127.0.1.1datastore1.jakonda.local datastore1 |
Настраиваем синхронизацию времени с контроллером домена, выполняем установку NTP, выполняем синхронизацию времени с контроллером домена:
1 |
apt-get install ntp ntpdate ntpdate dc1.jakonda.local |
Более подробно о синхронизации времени на Debian 8 Jessie/Ubuntu Server 14.04 можно почитать в этой статье
Настройка Active Directory (Windows Server 2012 R2)
В DNS зону (JAKONDA.LOCAL), добавляем A-запись файлового сервера:
Создаем служебного пользователя (прим. datastore1), с бесконечным срок действия пароля.
Создаем KEYTAB-файл (необходим для аутентификации пользователей в Active Directory). В командной строке с правами администраторы выполняем команду (соблюдая регистр):
1 | ktpass-princ HTTPdatastore1.jakonda.local@JAKONDA.LOCAL-mapuser datastore1@JAKONDA.LOCAL-pass Aa1234567-crypto RC4-HMAC-NT-ptype KRB5_NT_PRINCIPAL-outC\datastore1.keytab |
Полученный KEYTAB-файл, передаем любым удобным способом на файловый сервер (расположение KEYTAB-файла на моем файловом сервере — /root/datastore1.keytab). Как передать файл посредством утилиты PuTTY можно прочитать тут
Настройка Kerberos
Установка пакетов для поддержки аутентификации Kerberos:
1 | apt-get install krb5-user |
В ходе установки может появится запрос указать область по-умолчанию для Kerberos, область необходимо его указать в заглавном виде (прим. JAKONDA.LOCAL)
Файл конфигурации Kerberos (/etc/krb5.conf), приводим к виду:
1 |
logging default=FILEvarlogkrb5libs.log kdc=FILEvarlogkrb5kdc.log admin_server=FILEvarlogkadmind.log libdefaults default_realm=JAKONDA.LOCAL default_keytab_name=rootdatastore1.keytab dns_lookup_kdc=false dns_lookup_realm=false forwardable=true ticket_lifetime=24h realms JAKONDA.LOCAL={ kdc=dc1.jakonda.local default_domain=JAKONDA.LOCAL admin_server=dc1.jakonda.local } domain_realm .jakonda.local=JAKONDA.LOCAL jakonda.local=JAKONDA.LOCAL |
Соответственно подставляем название своего домена вместо jakonda.local/JAKONDA.LOCAL
Проверка работы Kerberos, выполним авторизацию в Active Directory:
1 |
kinit-kV-pHTTPdatastore1.jakonda.local Using default cachetmpkrb5cc_0 Using principalHTTPdatastore1.jakonda.local@JAKONDA.LOCAL Authenticated to Kerberos v5 |
Удаляем полученный билет:
1 | kdestroy |
Инструмент wbinfo
При установке пакета samba автоматически устанавливается служба winbindd.
Для работы с этой службой используется инструмент командной строки wbinfo, позволяющий получать информацию о пользователях и группах AD.
Примеры команд:
Команда | Описание |
---|---|
wbinfo -u | Вывести список пользователей |
wbinfo -g | Вывести список групп |
wbinfo -i имя_пользователя | Вывести подробную информацию о пользователе |
wbinfo -?wbinfo —help | Вывести справку по командам |
Настройка хостов — участников домена для входа доменных пользователей
По умолчанию, пользователи домена AD не могут выполнять вход в Linux-системы.Для обеспечения входа в Linux-системы с учетными записями Active Directory необходимо внести следующие изменения в настройки Samba AD DC в настройки пользовательских компьютеров.
Установка
Для своих серверов я всегда использую Centos, но здесь пришлось сделать исключение и выбрать Debian, т.к. Samba, доступная из основных пакетов в Centos, не может выступать в роли AD.
Вариантов установки на Centos было несколько: собрать из пакетов (что на продуктивном сервере совсем некошерно) или установить из сторонних репозиториев (например, tissamba), но решил попробовать Debian, т.к. не хотелось искать обходные пути.
Но и с Debian оказался нюанс, т.к. в основных стабильных репозиториях не было нужной мне версии. Тем не менее, вариант установки из официальных репозиториев, пусть и тестовых, меня более чем устроил.
Каждый волен выбирать тот вариант установки и тот дистрибутив, который подходит для той или иной задачи, но стоит учесть будущие возможные обновления и связанные с этим проблемы при использовании сборки из исходников или чужого репозитория, который не будет работать, например.
Зависимости, необходимые для Samba AD в Debian:
В оф. документации указаны пакеты python-gpgme python3-gpgme для зависимостей, но в Debian 10 его больше нет, так что его я не устанавливал.
Организация доступа к Windows с помощью клиента smbclient
В первую очередь, нам необходимо убедиться в том, может ли наш Linux взаимодействовать с Windows с помощью Samba. Самый простой способ, это воспользоваться FTP-подобным клиентом . C помощью которого, можно отправить запрос системе Windows и получить информацию о том, какие ресурсы Windows являются доступными.
samba:~# smbclient -L host -U% Domain= OS= Server= Sharename Type Comment --------- ---- ------- Error returning browse list: NT_STATUS_ACCESS_DENIED Domain= OS= Server= Server Comment --------- ------- HOST Workgroup Master --------- ------- WORKGROUP HOST samba:~# smbclient -L host -UАдминистратор%12345 Domain= OS= Server= Sharename Type Comment --------- ---- ------- IPC$ IPC Удаленный IPC print$ Disk Драйверы принтеров SharedDocs Disk PrinterHP3005 Printer HP3005 share Disk ADMIN$ Disk Удаленный Admin share_ware Disk C$ Disk Стандартный общий ресурс Domain= OS= Server= Server Comment --------- ------- Workgroup Master --------- -------
Из листинга видно, как мы с помощью smbclient и параметра -L запросили список доступных ресурсов на машине host от имени анонимного пользователя (параметр -U%). В ответ Windows нам сказал, что Error returning browse list: NT_STATUS_ACCESS_DENIED, то есть анонимный доступ запрещен. Далее, мы попробовали подключиться к машине от имени пользователя Администратор с паролем 12345, который зарегистрирован в системе. Мы получили ответ со списком расшаренных ресурсов. Это не может не радовать. Давайте попробуем подключиться к шаре share:
samba:~# cd smb/ samba:~/smb# smbclient //host/share -UАдминистратор%12345 Domain= OS= Server= smb: \> dir . D 0 Fri Mar 18 17:36:56 2011 .. D 0 Fri Mar 18 17:36:56 2011 ime D 0 Fri Mar 18 17:36:43 2011 Мои рисунки DR 0 Fri Mar 18 17:36:56 2011 Моя музыка DR 0 Fri Mar 18 17:36:56 2011 40915 blocks of size 262144. 24388 blocks available smb: \> cd ime smb: \ime\> dir . D 0 Fri Mar 18 17:36:43 2011 .. D 0 Fri Mar 18 17:36:43 2011 chsime D 0 Fri Mar 18 17:36:43 2011 CHTIME D 0 Fri Mar 18 17:36:43 2011 imejp D 0 Fri Mar 18 17:36:43 2011 imejp98 D 0 Fri Mar 18 17:36:43 2011 imjp8_1 D 0 Fri Mar 18 17:36:43 2011 imkr6_1 D 0 Fri Mar 18 17:36:43 2011 mscandui.dll A 220160 Tue Apr 15 16:00:00 2008 shared D 0 Fri Mar 18 17:36:43 2011 SOFTKBD.DLL A 130048 Tue Apr 15 16:00:00 2008 SPGRMR.dll A 62976 Tue Apr 15 16:00:00 2008 SPTIP.dll A 272384 Tue Apr 15 16:00:00 2008 40915 blocks of size 262144. 24388 blocks available smb: \ime\> get SPTIP.dll getting file \ime\SPTIP.dll of size 272384 as SPTIP.dll (11565,2 KiloBytes/sec) (average 11565,2 KiloBytes/sec) smb: \ime\> quit samba:~/smb# ls -l итого 269 drwxr-xr-x 2 root root 1024 Мар 18 19:00 . drwxr-xr-x 13 root root 1024 Мар 18 18:50 .. -rw-r--r-- 1 root root 272384 Мар 18 19:00 SPTIP.dll
Итак, в приведенном листинге нам удалось подключиться к шаре \\host\share от пользователя Администратор с паролем 12345. Мы получили содержимое каталога (причем русские символы прекрасно отображаются), перешли в подкаталог ime, получили его содержимое и получили на локальную машину файл SPTIP.dll, командой get (команда как и у FTP клиента). Вы, наверно, заметили, что в утилите smbclient путь к шаре указывается с прямым слешем, хотя в Windows принято задавать путь с обратным слешем. Утилита smbclient довольно гибка и используется как часть утилиты smbprint, для передачи потока данных, отправленных на принтер.
Conclusion
In this article, you have created cross-platform online file shares using the Samba server. You have also accessed these shares from Windows, Linux, and macOS.
Samba shares have become so common that many applications are able to access the data stored in them. These applications can extend the functionality and usefulness of your Samba shares. For example, the mobile version of the media player VLC can connect to and stream music and video from your Samba share. To access it, select open MRL and use the standard Samba URL: . You can also use a Samba share as the destination for your backups with the cross-platform backup utility BackupPC.
In addition to acting as a simple file share, Samba can work with Windows Active Directory as either a domain controller or a member of a domain. The Samba Wiki User Documentation contains more information on how to do this.
ШАГ 6: Утилиты и диагностика Samba
# testparm Load smb config files from etcsambasmb.conf Loaded services file OK. Server role: ROLE_STANDALONE
-
smbget позволяет скачивать с windows, linux (д.уст. samba) файлы через SMB протокол. Скачать рекурсивно все директории и файлы:
smbget -Rr smb://ip_addr/share
-
smbclient — утилита для подключения к общедоступным папкам.
-
Отобразить общедоступные ресурсы на удаленном хосте:
smbclient -L ip_addrhostname
-
Посмотреть «шары» локально на стороне сервер
smbclient -L 127.0.0.1
-
Просмотреть папку vip под пользователем tatyana
$ smbclient \\\\10.26.95.220\\vip -U tatyana
-
Отобразить общедоступные ресурсы на удаленном хосте:
-
nbtscan
nbtscan ip_addr разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba. nmblookup -A ip_addr
Now you know how to create Samba public shares, let’s go and create private and protected shares. Only users that are member of the approved group will be able to access the secure location with passwords.
First create a samba group called smbgroup for the share.. only members will have access. To create a groups in Ubuntu, run the commands below.
Then add a user to the group by running the commands below
Finally, all users who need to access a protected samba share will need to type a password. To add a user to samba password database, run the commands below for each user.
The user will be prompted to enter and confirm a password. This password will be used to access the protected samba shares.
Next, go and create a protected share in the /samba directory.
Then give only root and members group access to this share.
When you’re done creating the protected share, go and share it in the smb.conf file.
Then add configuration block below into smb.conf file just below the one above
Save your changes and you’re done.
Restart Samba and test your changes.
You should now see two folders… one is protected
Many more shares can be defined using the format above.
Only member of the smbgroup will be able to access the Protected area…
You could map the drive in Windows for easy access….
Enjoy!
That’s it!
Conclusion:
This post showed you how to install Samba on Ubuntu to allow file sharing. If you find any error above, please use the comment form below to report.
Thanks,
You may also like the post below:
Настройка Samba в Debian
Настройки Samba находятся в файле /etc/samba/smb.conf. Этот файл содержит общие настройки для Samba, а также сведения об общих ресурсах. Обычно в Debian предоставляются неплохие настройки по умолчанию, которые позволяют начать работать немедленно, что в общем не мешает взглянуть на них и внести изменения там, где это необходимо.
1. Базовые настройки
Первое что вам встретится в верхней части группы глобальных настроек — настройка workgroup. Эта опция определяет имя рабочей группы Windows, частью которой станет ваш сервер. Значение по умолчанию — WORKGROUP, так как такое же значение, по умолчанию в задано в Windows. Если вы изменяли настройки рабочей группы в Windows, измените их также и здесь.
Следующая опция позволит ограничить доступ к вашему серверу. Если вы хотите ограничить доступ к общему ресурсу по ip адресу или маске сети, уберите символ комментария в строке где находится параметр interfaces, и укажите ip адрес или диапазон IP адресов, и интерфейс к которому они могут подключаться.
Если такой метод вам не нравится, вы можете добавить параметр hosts allow, чтобы определить, клиентов, которые могут подключаться к общему ресурсу. Укажите IP-адрес или диапазоны адресов.
Остальные параметры из группы глобальных настроек имеют довольно обоснованные значения по умолчанию. Вам не потребуется изменять их для того чтобы запустить свои общие ресурсы. Но не стоит ограничиваться только рассмотренными нами опциями, вы можете исследовать и другие параметры, и настраивать их по своему усмотрению. Настройка Samba Debian 10 практически завершена, осталось создать общую папку и пользователя.
2. Создание общего ресурса
В конфигурационном файле, по умолчанию, уже присутствуют несколько настроек для общих ресурсов. Они дают вам возможность настроить совместное использование домашних папок пользователей системы и принтеров. А доступ к каталогу печати уже открыт. Измените значение параметра browseable на no.
Теперь попробуйте создать свой собственный общий ресурс. Существует масса опций, которые вы можете использовать для своего общего ресурса Samba, но в этом руководстве будут рассмотрены лишь наиболее используемые из них.
Во-первых, дайте имя своему общему ресурсу, и поместите это имя в скобки.
В следующей строке напишите краткий комментарий, описывающий общий ресурс.
Затем задайте путь, эквивалентный абсолютному пути к общей папке.
Выберите, будет ли папка отображаться в файловом менеджере или же ее нужно будет подключать вручную.
Хотите ли вы, чтобы пользователи имели права на запись в общий ресурс или могли подключить его только для чтения?
Смогут ли гости получить доступ к общему ресурсу? В терминах Samba гости — это анонимные пользователи, для которых не существует записи в настройках доступа к общему ресурсу. Если выразиться короче, хотите ли вы защитить общий ресурс паролем, или ограничить доступ к ресурсу только для отдельных пользователей?
Если гости не будут иметь доступ к общей папке, то у кого он будет?
Ну вот и все. Есть еще и другие опции и другие способы выполнить эти базовые шаги, но они дадут вам в итоге приблизительно тот же результат. Если вы точно знаете что вам нужно, этих опций вам будет достаточно. Если соединить все что мы написали выше — у нас получится что-то вроде этого:
Сохраняем и закрываем файл. Затем перезагружаем Samba.
3. Создание пользователя
Для подключения к общей папке, если только вы не используете гостевой доступ, вам потребуется настроить учетные записи пользователей Samba. Это очень быстро, и потребует всего одной команды.
После этого вам будет предложено ввести пароль для этого пользователя. Это пароль, которым будут защищены доступные ему общие ресурсы.
Настройка Samba в Ubuntu 16.04
Ставим Samba и если у кого нет — пакет gksu, для возможности запуска окна настроек Samba:
sudo apt install samba system-config-samba gksu
Теперь переходим к настройке сервера
Создаём резервную копию оригинального файла конфигурации Samba:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
После этого, создаём свой файл конфигурации:
sudo gedit /etc/samba/smb.conf
Указываем глобальные настройки файлового сервера.
Копируем в файл эти строки:
workgroup = WORKGROUP server string = Samba Server %v netbios name = SambaSrv security = user map to guest = bad user name resolve order = bcast host wins support = no dns proxy = no
Что мы скопировали?
А вот что:
workgroup - рабочая группа, в которой находятся все наши машины server string - строка коментария, где %v - это макрос, который будет заменён на версию Самбы netbios name - имя Самба-сервера, которое будет отображаться в Windows security - по умолчанию выполнять аутентификацию на уровне пользователя map to guest - это инструкция демону, которая сообщает, что делать с запросами. bad user - означает, что запросы с неправильным паролем будут отклонены, если такое имя пользователя существует name resolve order - очередность разрешения IP адресов по NetBIOS имени. bcast - означает отправить в локальную сеть широковещательный запрос. Если все компьютеры между которыми планируется взаимодействие находятся в одной сети этот вариант оптимальный. wins support - не устанавливайте этот параметр в yes если у вас нет нескольких подсетей и вы не хотите, чтобы ваш nmbd работал как WINS сервер
Сохраняем изменения.
Теперь даём общий доступ к папке в Ubuntu, чтобы машины с Windows могли ею пользоваться.
Общий доступ к папке в Ubuntu
Создаём папку, к которой будем открывать доступ для всех:
sudo mkdir -p /samba/obmen
Ключ -p разрешает создавать вложенные папки.
~ — создать каталоги в домашней папке пользователя
После того как папка создана, нужно сделать для нее правильные права доступа. Следующие команды разрешают доступ к папке для всех и делают владельцем nobody:
cd /samba sudo chmod -R 0755 obmen sudo chown -R nobody:nogroup obmen/
Внесём изменения в файл настройки samba, добавив следующий раздел:
path = /samba/obmen browsable = yes writable = yes guest ok = yes read only = no
Теперь ваш конфигурационный файл должен выглядеть вот так:
workgroup = WORKGROUP server string = Samba Server %v netbios name = SambaSrv security = user map to guest = bad user name resolve order = bcast host dns proxy = no path = /samba/obmen browsable =yes writable = yes guest ok = yes read only = no
Чтобы применить изменения, перезапустите сервер Samba:
sudo service smbd restart
С анонимным доступом к общему ресурсу мы закончили.
Теперь можем проверить доступность этой папки в Windows-машине.
Нажимаем Win+R и в адресной строке пишем:
Скрин показывает, что доступ получен, и получен он без вводи логин и пароля, то есть анонимно.
Защищенный общий доступ к папке Ubuntu
Чтобы расшарить папку для Windows в Ubuntu, к которой будут иметь доступ только пользователи из определенной группы, создадим отдельную папку и опишем ее в файле настройки Samba в Ubuntu.
Создаем папку:
sudo mkdir -p /samba/obmen/sec
Устанавливаем права, чтобы доступ к папке получали только пользователи из группы securedgroup.
Создаем группу:
sudo addgroup securedgroup
Настраиваем права:
cd /samba/obmen sudo chmod -R 0770 sec/ sudo chown -R alex:securedgroup sec
Добавляем настройки в конфигурационный файл samba
Открываем конфигурационный файл
sudo gedit /etc/samba/smb.conf
И добавляем в него этот блок:
path = /samba/obmen/sec valid users = @securedgroup guest ok = no writable = yes browsable = yes
Перезапускаем сервер Samba.
Теперь доступ к общей папке в Ubuntu могут получить только пользователи группы securegroup.
Чтобы проверить как это работает добавим пользователя alex в нашу группу:
sudo usermod -a -G securedgroup alex
Чтобы пользователь мог работать с расшаренными папками в Ubuntu, он должен быть в базе данных Samba.
Создаём для него пароль Samba:
sudo smbpasswd -a alex
После ввода команды будет предложено ввести новый пароль.
Для применения изменений перезагружаем файловый сервер.
Для того, чтобы доступ к папке мог получить только определённый пользователь, заменяем @securedgroup на имя пользователя.
Вот и всё
10 октября 2016, 18:32
Александр
Linux
13304
Из этой категории
- Установка LAMP-сервера и phpMyAdmin в Debian 10Установка XAMPP в Debian 10 (Ubuntu) LinuxОтключить пароль SUDO в LinuxBash-команды для экономии времениУстанавливаем Brackets в Debian 10Работа с пакетами при помощи dpkgНастройка Linux Debian 10Скачиваем сайты целиком — утилита wget15 специальных символов-команд, которые нужно знать для работы в Bash Linux42 команды Linux