Пожалуй нет ни одного офиса, в котором не применялись бы общие ресурсы локальной сети, будь то папки или принтеры. Крупные и средние компании используют возможности Active Directory, компании поменьше – используют штатные средства ОС Windows или Samba, но на серверах под управлением ОС Linux. Рассмотрим все случаи, как настроить Samba.
Что такое Samba?
Samba – серверное приложение, реализующее доступ клиентских терминалов к папкам, принтерам и дискам про протоколу SMB/CIFS.
Настройка общих папок в Linux
Установка и настройка Samba-сервер для Ubuntu выполняется следующими этапами.
Обновляем информацию о репозиториях и устанавливаем обновления для существующих пакетов в системе:
apt-get update && apt-get upgrade
Устанавливаем пакет Samba:
apt-get install -y samba samba-client
Создадим резервную копию файла конфигурации:
cp /etc/samba/smb.conf /etc/samba/smb.conf_sample
Создадим директории для файлов, например в каталоге /media:
mkdir /media/samba
Важно! По умолчанию, директория /media располагается в корне системы /, для нее редко создается свой раздел. По этой причине возможно переполнение корневого раздела. Во избежание этой неприятной ситуации, рекомендуем монтировать отдельный жесткий диск в /media/samba.
Создаем каталог для всех пользователей:
mkdir /media/samba/public
Изменим права доступа к каталогу:
chmod -R 0755 /media/samba/public
Также следует воспользоваться командой chown для смены владельца и/или группы.
Создаем директорию для ограниченного круга лиц:
mkdir /media/samba/private
С помощью системных инструментов создадим группу пользователей:
groupadd smbgrp
Добавляем пользователей Samba:
useradd user1
Созданных пользователей добавляем в группу:
usermod -aG smbgrp user1
Изменим группу, которой принадлежит приватная директория:
chgrp smbgrp /media/samba/private
С помощью инструментов Samba создадим пароль для добавленного пользователя:
smbpasswd -a user1
С помощью текстового редактора, например, nano, редактируем конфигурационный файл samba:
nano /etc/samba/smb.conf
Удаляем все строки из файла. Вставляем следующие:
[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[public]
path = /media/samba/public
guest ok = yes
force user = nobody
browsable = yes
writable = yes
[private]
path = /media/samba/private
valid users = @smbgrp
guest ok = no
browsable = yes
writable = yes
Сохраняем используя сочетание Ctrl + X, затем нажимаем Y и Enter.
Объясним значения строк. конфигурационный файл состоит из трех секций:
global – данная секция отвечает за общие настройки Samba-сервера;
public и private – секции описания настроек директорий общего доступа.
В секции global присутствуют пять параметров:
- workgroup – рабочая группа. Для упрощения работы пользователей WORKGROUP указывается, как группа по умолчанию. Если в вашей сети имя рабочей группы изменено, то следует изменить это значение и для Samba;
- security – уровень безопасности сервера. Значение user означает авторизацию по паре логин/пароль;
- map to guest – параметр определяет способ обработки запросов. Значение bad user означает, что запросы с неправильным паролем будут отклонены, даже если такое имя пользователя существует;
- wins support – включить или выключить поддержку WINS;
- dns proxy – возможность проксирования запросов к DNS.
Настройки директорий выполняются в соответствующих секциях:
path – полный путь до директории на жестком диске;
guest ok – возможность доступа к каталогу без пароля (гостевой);
browsable – показывать ли каталог (“шару”) на сервере среди прочих. Если параметр установлен как “no”, то доступ будет возможен по полному пути, например ip-addresshidden_directory;
force user – пользователь от которого ведется работа с каталогом. Для повышения безопасности сервера, обычно используют nobody. Главное, не использовать пользователя root – это небезопасно.
writable – установка значения как “yes” позволяет пользователю выполнять действия над файлами внутри каталога – переименование, добавление, удаление, перемещение в подкаталог и копирование;
valid users – список пользователей у которых есть доступ к каталогу. Если пользователей несколько, их имена указываются через запятую. Если необходим доступ для пользователей принадлежащих группе, перед именем группы устанавливается символ ”at” @ (“собака”).
Важно! Имя директории общего доступа, отображаемое пользователям, равно имени секции в которой оно описано.
Проверяем настройки с помощью команды:
testparm -s
Перезапускаем сервер:
service smbd restart
service nmbd restart
Настроим межсетевой экран. Для этого в правилах откроем TCP-порты 139 и 445, а также UDP-порты 137 и 138, но только для тех подсетей, которым доверяете. Для указания собственного диапазона адресов, замените значение после ключа “-s”:
iptables -A INPUT -p tcp -m tcp --dport 445 -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 139 -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 137 -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 138 -s 10.0.0.0/24 -j ACCEPT
Для сохранения правил и применения их после перезагрузки сервера следует воспользоваться пакетом iptables-persistent. Установим его:
apt-get install iptables-persistent
Входе установки пакета, программа предложит запомнить существующие правила iptables. Подтверждаем это действие.
Для проверки существующих правил используем:
iptables -L
Настройка общих папок в Windows
По аналогии с Linux, настроим общий доступ к папкам public и private, но в ОС Windows.
Для создания общего доступа к каталогу без парольной защиты, необходимо настроить ограничения защиты в панели управления. Для этого открываем:
Панель управления → Сеть → Центр управления сетями и общим доступом → Расширенные настройки общего доступа.
В обновленном окне открываем раздел “Все сети” и ищем секцию “Общий доступ с парольной защитой”. Устанавливаем параметр в положение “Отключить общий доступ с парольной защитой”. Для сохранения значений параметра кликаем по кнопке “Сохранить изменения”.
Теперь откроем доступ к самому каталогу. Кликаем по папке правой кнопкой мыши, в контекстном меню выбираем “Свойства”. Открываем вкладку “Доступ” и кликаем по “Расширенная настройка”.
В открывшемся окне расширенных настроек общего доступа отмечаем галочкой “Открыть общий доступ к этой папке”, в поле “Имя общего ресурса” указываем название, которое будет отображено пользователям. Кликаем по кнопке “Разрешения”.
В открывшемся окне, в группах пользователей выбираем “Все”, а в разрешениях для группы, устанавливаем галку “Полный доступ”. Нажимаем “OK” в этом и остальных окнах.
В окне свойств папки public кликаем по кнопке “Общий доступ”.
В открывшемся окне добавляем пользователя “Все”, а также делегируем права на “Чтение и запись”. Кликаем по кнопке “Поделиться”.
В обновленном окне нажимаем “Готово”.
Настроим папку общего доступа, но для ограниченного круга лиц.
Кликаем правой кнопкой мыши по папке, выбираем “Свойства”.
В открывшемся окне переходим на вкладку “Доступ”. Кликаем по кнопке “Расширенные настройки”.
В новом открывшемся окне, устанавливаем галку “Открыть общий доступ к этой папке”. Затем кликаем по кнопке “Разрешения”.
В открывшемся окне, в поле “Группы или пользователи” выбираем “Все” и нажимаем кнопку “Удалить”.
Таким образом установлен запрет на анонимный доступ к папке.
Окно обновится. Кликаем по кнопке “Добавить”.
В открывшемся окне кликаем по кнопке “Дополнительно”.
Окно изменится в размере. Кликаем по кнопке “Поиск”. Двойным кликом выбираем пользователя, которому необходим доступ к этому каталогу, например, buhgalter.
В открывшемся окне, при желании, можем добавить еще одного пользователя через “Дополнительно” – “Поиск”. Аналогичным образом можно добавить группу пользователей, например, “Администраторы”, при этом следует понимать, что доступ будет предоставлен всем пользователям из этой группы.
Установим права доступа для пользователя “buhgalter”. Если требуется полный доступ к директории, устанавливаем галку в соответствующем месте.
Нажимая кнопки “OK” возвращаемся к окну свойств папки, в котором кликаем по кнопке “Общий доступ”.
В данном окне необходимо найти и добавить пользователя “бухгалтер”.
В окне выбора пользователей и групп кликаем по кнопке “Дополнительно”.
Окно снова изменит свои размеры. Кликаем по кнопке “Поиск”. В найденном ниже списке пользователей и групп выбираем искомого пользователя. Выбираем его двойным кликом.
В оставшемся окне проверяем правильно ли указан пользователи и нажимаем кнопку “OK”.
Устанавливаем требуемый уровень разрешений для пользователя и кликаем по кнопке “Поделиться”.
Кликаем по кнопке “Готово”.
Подключение к общим папкам из Linux
Для подключения к общим папкам из среды Linux требуется установка отдельного программного обеспечения – smbclient. Установим:
sudo apt-get install smbclient
Для подключения к серверу используется следующий формат команды:
smbclient -U <Имя_пользователя> <IP-адрес><Имя_каталога_на_сервере>
Пример:
smbclient -U buhgalter 10.0.0.1public
Для того, Чтобы не вводить эту команду каждый раз, можно настроить монтирование общей директории как сетевого диска. Для этого установим пакет cifs-utils:
sudo apt-get install cifs-utils
Монтирование выполняется по следующему шаблону:
mount -t cifs -o username=<Имя_пользователя>,password= //<IP-адрес>/<Общий каталог> <Точка монтирования>
Пример:
mount -t cifs -o username=Everyone,password= //10.0.0.1/public /media
Важно! Если требуется подключение к общим папкам расположенным на Windows-сервере, то в для не защищенных паролем директорий, в качестве имени пользователя, следует использовать “Everyone”. Для подключения к Linux-серверу рекомендуем использовать в качестве имени пользователя “nobody”. В случае доступа к защищенным директориям следует использовать те учетные данные, которые вы указали.
Подключение к общим папкам из Windows
Подключение к удаленным папкам из среды Windows выполняется немного иначе. Для этого в проводнике или окне запуска программ (Windows + R), следует использовать следующий шаблон:
<IP-адрес><имя_папки>
Указав просто IP-адрес сервера вы получите список общих папок.
При подключении к Windows-серверу, система безопасности может потребовать ввод учетных данных. Для подключения к общей открытой папке используем Everyone, а поле пароля оставляем пустым.
При подключении к Linux-серверу из ОС Windows, следует использовать указанный ранее шаблон:
<IP-адрес><имя_папки>
или просто адрес сервера:
<IP-адрес>
Как создать общий сетевой ресурс в Samba
Создайте директорию, которую в хотите сделать общей:
mkdir /home//
Создайте бэкап, если что-то пойдет не так:
sudo cp /etc/samba/smb.conf ~
Отредактируйте файл “/etc/samba/smb.conf”:
sudo nano /etc/samba/smb.conf
Добавьте следующее содержимое в файл:
[]
path = /home//
valid users =
read only = no
Заполните файл своими данными, сохраните его и затем закройте
Перезапустим Samba:
sudo service smbd restart
Использую данную команду проверьте вашу директорию smb.conf на ошибки:
testparm
Чтобы получить доступ к вашему общему сетевому ресурсу:
sudo apt-get install smbclient
# Просмотр всех общих ресурсов:
smbclient -L /// -U
# Подключение:
smbclient /// -U
Note 1: Чтобы подключиться к вашему общему сетевому ресурсу используйте имя вашего пользователя () и пароль, который находится “smb:////”
Учтите, что “” значение передается в “[]”,
другими словами, имя общего ресурса, которое вы ввели в “/etc/samba/smb.conf”.
Note 2: Группа пользователей samba по умолчанию это – “WORKGROUP”.
Диск для резервных копий и обмена данными с сервером
Сетевой Samba\WebDAV диск, это полностью отдельный от вашего сервера, автономный диск, который вы можете подключить, как в любой учетной записи на сервере, так и подключить к любому локальному компьютеру дома или в вашей рабочей сети, с которого ведется подключение к серверу.
Подключение сетевого диска
После получения у технической поддержки данных для подключения диска (адрес, логин и пароль), следует на удаленном сервере, а затем и на локальном компьютере с котрого вы ведете подключение, выполнить следующие действия.
В оснастке «Мой компьютер», необходимо будет выбрать «Подключить сетевой диск».
ввести адрес из предоставленных вам данных по подключению диска, отметить галку «ИСпользовать другие учетные данные» и «Восстаналивать подключение..»
Далее будет предложено ввести логин и пароль, не забудьте отметить галку сохранить данные для входа — что бы диск не отключался после завершения сеанса пользователя.
После этих действий в оснастке «Мой компьютер» появится сетевой диск, который вы можете использовать по назначению, для ежедневных бэкапов, для обмена крупными данными с сервером и вашей локальной сетью, для обмена банковскими выписками между приложениями и программой 1С.
Подключение через протокол SFTP
Вы также можете использовать для подключения к сетевому диску, защищенный протокол SFTP по 22 порту. В том числе, если ваш провайдер блокирует подключение к внешним ресурсам по протоколам Samba\WebDAV, обуславливая это параметрами безопасности, вы можете использовать данный метод работы с диском.
Для работы по данному протоколу вам понадобиться дополнительное программное обеспечение
Скачать WinSCP (Free SFTP client for Windows) с офиц. сайта
При запуске программы, заполните настройки подключения, согласно скриншоту представленному ниже, используя предоставленные нашей технической поддержкой данные для входа, адрес хоста, удалив из него название и тип протокола, а также ваш логин и пароль для доступа к диску.
преимущества работы с сетевым диском и стоимость:
Посмотреть цены на сервера для 1С:
If you are searching for a compatible and open source software for accessing and sharing files, folders and other data, then come across the Samba share. It provides a cross-platform adaptable environment between Windows and other systems. In this tutorial, I have outlined every ins and outs on how to access Samba share from Windows. So, go over it, try accessing Samba share from your Windows and leverage the benefits of this interoperable service.
Key Takeaways
- Learning basic commands of the command prompt, PowerShell.
- Understanding the fact of accessing Samba shares from Windows.
- Learning how to connect and disconnect Samba drives.
Requirements
- Users must have Samba already installed and configured properly.
- Users must have Samba connection on.
Process Flow Chart
[Windows Used Throughout the Tutorial: Windows 10]
You can easily access samba share from Windows only employing some compact and effortless steps. Here, I am going to introduce two types of methods that will help you to access the Samba share.
You can read the Comparative Analysis of Methods to know more related terms regarding samba shares.
In the following section, I will show two cases of GUI (Graphical User Interface) for accessing Samba share from Windows.
To access Samba share using File Explorer follow the manual procedure shown below:
Steps to Follow >
➊ Press WIN+E or you can click on the Folder icon like the image below to open file explorer:❷ Enter the path of the Samba share in the address bar like the format below and click ENTER:
\\192.168.231.128\sambashare
EXPLANATION
- \\192.168.231.128: Represents Samba server IP address.
- \sambashare: Indicates the shared folder.
Here, ‘192.168.231.128’ is my system’s IP address and ‘sambashare’ is the folder I want to share.
❸ Now, enter your network credentials when prompted to you and click OK.❹ Once done with the connection, you can access all the shared files and folders inside the shared one.Following the above steps, I can access the new_samba folder inside the Samba share.
Map Network Drive is another way of accessing Samba share. Follow the steps to exercise it:
Steps to Follow >
➊ Go to file explorer and click on Map network drive under the Computer tab like the following image:❷ Now, choose a Drive, enter the path for the Samba share and click Finish.From the image, you can see that I have chosen drive B: for my desired Samba share.
❸ If there prompts the credential requirements, then provide your user name and Samba password.After this, you can see that the Samba shared folder has been mapped to the selected drive.❹ Now, double click on the new drive and you can access the files and folders inside the Samba share.From the snapshot above, you can see that I can access my new_samba folder inside sambashare.
Read More: Install, Configure and Connect Samba on Ubuntu Using GUI
Below I will demonstrate two different cases of ‘Command line shell’ for accessing Samba share from Windows.
To access the Samba shares’ contents from the command prompt follow the steps below:
Steps to Follow >
➊ Press WIN+R, type cmd and hit ENTER. You will prompt to the command line interface.
❷ Now, write the following command in the command prompt to connect to the Samba share:
net use P: \\192.168.231.128\sambashare /user:nadiba 1234
EXPLANATION
- net use: Manages network connectivity.
- P: Indicates the assigned drive letter for the Samba share. I have chosen ‘P’ drive.
- \\192.168.231.128\sambashare: Represents Samba server IP address and the shared folder.
- /user:nadiba: Specifies the Samba username. ‘nadiba’ is my Samba username.
- 1234: Represents Samba user password. Here, my system’s Samba user password is ‘1234’.
If the given credentials are correct, you will see ‘The command completed successfully.’ like the above image.
❸ You will find then that the Samba share has been mapped to the assigned drive letter like the following image:Thus, you can access the samba shares’ contents.
You can also access Samba shares from PowerShell by following the given steps:
Steps to Follow >
➊ First, open PowerShell and write the following command to create a new drive:
New-PSDrive -Name A -PSProvider FileSystem -Root \\192.168.231.128\sambashare -Credential (Get-Credential)
EXPLANATION
- New-PSDrive: Creates a new PowerShell drive.
- -Name A: Represents the letter of the drive you want to assign. I have preferred ‘A’ for my drive.
- -PSProvider FileSystem: Filesystem provider is used for the new drive.
- -Root \\192.168.231.128\sambashare: Specifies the path location of the Samba share.
- -Credential: The requirements to access the Samba share.
- (Get-Credential): Prompts you to provide the username and password to access Samba share.
❷ Now, you will prompt to a new window to provide the Samba username and password. Provide the requirements and click OK.You can see in the following screenshot that the Samba share has been mapped to the specific drive you chose.❸ Now, you can navigate to the drive whenever you want by running the command below:
cd A:
EXPLANATION
- cd A: Navigates to the drive A.
After navigating to the new Samba drive you can interact with the contents in the Samba share.
Read More: How to Install, Configure and Connect Samba Client on Ubuntu
Comparative Analysis of Methods
While accessing Samba share from Windows, you have two options- using GUI or command line shell. Let’s make a comparative analysis between these two methods.
Methods | Pros | Cons |
---|---|---|
Method 1 |
|
|
Method 2 |
|
|
Overall, both methods are preferable with their individual specifications. Which method to choose totally depends on the user’s preference, experience level and individual perspective.
Complementary Information
Besides the previous discussion regarding access to Samba share, the below information might interest you.
How to Open PowerShell
There are several ways to open PowerShell in Windows. I have mentioned three easy processes below:
1. Open PowerShell Using File Explorer
Press WIN+E and type powershell in the address bar and tap ENTER.
2. Open PowerShell Using Run Dialog
Press WIN+R, write powershell and click OK.
Click on the Start menu at the bottom-left of the screen, scroll and expand the Windows PowerShell folder and then click on ‘Windows PowerShell’ option.All of these three processes will open the PowerShell application in your Windows like the above image.
How to Perform Several Tasks on Samba Drive Using PowerShell
Using PowerShell you can view the listed contents, add new items or remove the whole Samba drive. Follow the detailed execution mentioned below:
List Contents
After navigating to the assigned Samba drive, you can list all the contents inside the Samba share using the command below:
Get-ChildItem
EXPLANATION
- Get-ChildItem: Returns collection of contents within the shared path.
You can see from the image that I have navigated to drive A and can see the new_samba folder inside sambashare folder.
Create New Items
To create new files in a mounted Samba drive use the command below:
New-Item -ItemType File -Path A:\new_samba\samba.txt
EXPLANATION
- New-Item: Creates new item.
- -ItemType File: Specifies the item’s type as file.
- -Path A:\new_samba\samba.txt: Indicates the location of the new file. I have created ‘samba.txt’ as a new file inside ‘A’ drive.
You can see a new file ‘samba.txt’ has been added to the new_samba folder inside Samba drive.
Remove Drive Mapping
Once done accessing Samba share, you can remove the mapped Samba drive using the following command:
Remove-PSDrive -Name A
EXPLANATION
- Remove-PSDrive: Removes the assigned drive.
- -Name A: Represents the letter of the drive you want to assign. I have preferred ‘A’ for my drive.
Also, you can check if the drive has successfully been removed or not by running the syntax below:
Get-PSDrive -Name A
EXPLANATION
- Get-PSDrive: Displays information about the given drive.
- -Name A: Represents the letter of the drive you want to assign.
From the above image, it is clear that the drive ‘A’ is removed successfully.
Conclusion
Samba share integrates collaboration in mixed operating systems. So, to confirm seamless access to Samba share from Windows you must configure the Samba server and set permissions properly. Also, ensure that Windows and Linux machines are on the same network.
People Also Ask
Can I install Samba on Windows?
Yes, you can install Samba on Windows because it’s free and open-source software.
How to see SMB shares in CMD?
To view SMB shares click on the search box, then type cmd and press ENTER. At the prompt, write net share and hit ENTER.
How to find out my SMB IP Address?
Open the command prompt and type ipconfig and hit ENTER.
Do all Windows share use SMB file sharing protocol?
Yes, all Windows shares use SMB.
Can I block SMB traffic using Windows firewall?
You can block all inbound SMB traffic using Windows firewall configuration.
What is the security risk of SMB in Windows 10?
The SMB vulnerability lets an unauthenticated attacker execute any code as an application.
Related Articles
- How to Share Files between Linux and Windows
- How to Configure NFS Server in Linux? [5 Steps]
- How to Access Shared Folder in Ubuntu [2 Methods]
- How to Install and Configure Samba Server in Ubuntu? [4 Steps]
- How to Copy File from Windows to Linux Using SSH [2 Methods]
- How to Share Files between Linux and Windows Dual Boot [3 Methods]
Файловый сервер работает по протоколу SMB/CIFS и позволяет предоставить доступ к общим ресурсам в локальной сети, например, текстовым файлам или сетевым принтерам. Для его развертывания на Windows используются штатные средства ОС, на Linux используется файловый сервер Samba.
В инструкции рассмотрена настройка файлового сервера на серверах с операционными системами Linux и Windows. На сервере будет находиться 2 каталога – публичный и приватный. К файловому серверу подключение будет происходить как с операционной системы Windows, так и с Linux, т.к. в виртуальной или физической локальной сети могут находиться серверы с разными ОС.
Для начала в панели управления должны быть созданы все необходимые для сети серверы.
После создания необходимо объединить все машины в единую локальную сеть через панель управления в разделе Сети. В результате серверы получат локальные IP-адреса.
После создания частной сети необходимо настроить сетевые адаптеры на каждом сервере. Об этом можно прочитать в наших инструкциях:
Прежде всего, необходимо определиться, на сервере с какой операционной системой будет находиться общий каталог.
Прежде чем приступать к работе продумайте схему хранения данных и доступа к ним. Существую разные типы данных, которые мы будем характеризовать по интенсивности доступа к ним, скажем “холодные данные” отличаются тем, что обращения к ним происходят крайне редко (а к некоторым вообще никогда), но при этом они могут занимать значительные объемы. Это прежде всего резервные копии, инсталляционные пакеты, образа дисков и т.д. и т.п.
Противоположность им “горячие данные” – это данные которые интенсивно используются и изменяются, для файлового сервера примером таких данных может служить файловая информационная база 1С:Предприятия. Между ними находятся обычные данные, характер доступа к которым не имеет каких-либо особенностей.
Исходя из типа данных следует выбирать диски для хранения, для “горячих данных” это должны быть быстрые диски или SSD, а для “холодных” подойдут экономичные модели с упором на большой объем. Также не забывайте про RAID, для защиты данных от аппаратного выхода дисков из строя.
Также продумайте структуру директорий и прав доступа к ним. Разумно будет исходить из следующих соображений: разделяйте диски с данными и системой, чтобы при необходимости можно было заменить их без лишних затруднений или перенести на другой сервер. Храните разные типы данных на разных дисках или разделах, скажем, если на разделе для резервных копий закончится свободное место, то это никак не повлияет на работу баз 1С.
В нашем примере мы будем использовать виртуальную машину с двумя жесткими дисками, один для системы, второй для данных, точку монтирования диска для данных мы указали как /samba, вы можете использовать другое имя и расположение.
Также обратите внимание на имя компьютера, Samba 4 будет использовать его в качестве NetBIOS имени.
После установки ОС следует изменить настройку лимита на количество одновременно открытых файлов, в Linux это 1024, а в Windows 16384. Для этого откройте файл /etc/security/limits.conf и добавьте в конце две строки:
После чего сервер следует перезагрузить.
Для развертывания файлового сервера на системах Linux используется инструмент SAMBA. Ниже перечислены действия по его установке и настройке.
Создайте или выберете директорию, к которой все пользователи будут иметь общий доступ:
Создайте или выберете каталог, к которому иметь доступ будут ограниченное число пользователей:
Откройте файл конфигурации на редактирование с помощью текстового редактора, например nano:
[global]workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[public]path = /samba/public
guest ok = yes
force user = nobody
browsable = yes
writable = yes
[private]path = /samba/private
valid users = @smbgrp
guest ok = no
browsable = yes
writable = yes
Сохраните внесенные изменения, нажав CTRL+X, затем Enter и Y.
Далее нужно настроить firewall, открыв порты, которые использует SAMBA. Настоятельно рекомендуем разрешить только подключения из локального диапазона IP-адресов или виртуальной частной сети. Адресное пространство вашей частной сети вы можете увидеть в панели управления 1cloud.
Замените значение параметра –s в правилах ниже для соответствия адресному пространству вашей частной сети. Как правило префикс сети /24, если вы явно не подразумеваете иного:
iptables -A INPUT -p tcp -m tcp –dport 445 –s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp -m tcp –dport 139 –s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp –dport 137 –s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp –dport 138 –s 10.0.0.0/24 -j ACCEPT
Теперь необходимо сделать так, чтобы указанные выше правила фаервола iptables были сохранены после перезагрузки машины. Для это установим пакет iptables-persistent:
После установки откроется окно с предложением последовать запомнить текущие правила iptables для IPv4 и IPv6. Подтвердите это действие.
В выводе команды вы должны увидеть ранее добавленные разрешающие политики (Accept).
Начнем с самого простого варианта – создадим общий ресурс, доступ к которому может иметь любой пользователь. Для этого добавим в конец файла /etc/samba/smb.conf следующие строки.
В квадратных скобках задаем имя ресурса, все что ниже скобок – секция этого ресурса. В ней мы указали следующие опции:
Теперь создадим саму директорию:
mkdir /samba/public
и установим на нее необходимые права, для гостевого ресурса это 777:
chmod 777 /samba/public
Перезапускаем Samba и пробуем получить доступ с любого Windows-клиента.
Если все сделано правильно, то сервер появится в сетевом окружении, и вы без проблем получите доступ к созданной нами общей папке.
Настройка корзины для общего ресурса
Полезность корзины на файловом сервере, пожалуй не будет отрицать никто. Человеку свойственно ошибаться и будет очень обидно, если ценой ошибки окажется несколько часов работы, но, к счастью Samba позволяет помещать удаленные файлы в корзину.
Для активации корзины добавьте в секцию к общему ресурсу следующие строки:
vfs objects = recycle
recycle:repository = .recycle
recycle:versions = yes
recycle:keeptree = yes
Первая опция добавит в общий ресурс новый объект – корзину, вторая укажет ее расположение – скрытая папка в корне. Две следующих включают сохранение структуры папок при удалении и сохранение нескольких версий файла с одним и тем же именем. Это нужно в тех случаях, когда разные пользователи удалят разные файлы с одним и тем же именем.
Перезапустим Samba и попробуем что-нибудь удалить.
Несмотря на грозное предупреждение Проводника удаляемые файлы перемещаются в корзину, откуда мы их можем восстановить.
Как видим, работать с Samba не просто, а очень просто, при том, что мы оставили за кадром многие возможности тонкой настройки, многие из которых требуют отдельных статей. Надеемся, что данный материал окажется вам полезным и поможет быстро и без проблем развернуть файловый сервер на Linux.
Настройка общего публичного каталога на Windows
Для общего доступа к файлам по сети в Windows используются стандартные средства ОС.
Чтобы пользователи локальной сети могли без пароля подключаться к общему ресурсу, необходимо в панели управления снять ограничения защиты. Откройте панель управления и перейдите в раздел Сеть (Network and Internet) -> Центр управления сетями и общим доступом (Network and Sharing Center) -> Расширенные настройки общего доступа (Advanced sharing settings). В разделе Все сети (All Networks) выберете опцию Отключить доступ с парольной защитой (Turn off password protected sharing) и сохраните изменения.
Далее, чтобы настроить общий доступ к каталогу на Windows необходимо создать или выбрать нужный и открыть его свойства. В свойствах перейдите во вкладку Доступ (Sharing) и нажмите Расширенная настройка (Advanced Sharing).
В открывшемся окне отметьте галочкойОткрыть общий доступ к этой папке (Share this folder), для того чтобы она стала общедоступной. В полеИмя общего ресурса (Share name) введите имя, которое будет видно всем пользователям. Далее нажмитеРазрешения (Permissions)для настройки прав доступа.
Выберете нужные права доступа для всех пользователей (Everyone). НажмитеПрименить (Apply), чтобы изменения вступили в силу.
Теперь в свойствах каталога нажмитеОбщий доступ (Share).
В поле поиска введитеВсе пользователи (Everyone)и нажмитеДобавить (Add). Для полного доступа выберете праваRead/Writeи нажмите Поделиться (Share).
Теперь ваш каталог Windows доступен всем пользователям локальной сети без пароля.
Настройка общего ресурса с парольным доступом
Гостевой доступ это просто и удобно, но не всегда приемлемо. Существуют ситуации, когда доступ к общему ресурсу должны иметь только определенные пользователи. В нашем примере создадим два таких ресурса: для бухгалтерии и для IT-отдела.
Снова откроем конфигурационный файл и добавим в него две секции:
[buch]path = /samba/buch
read only = no
guest ok = no
[adm]path = /samba/adm
read only = no
guest ok = no
Они предельно просты и отличаются запретом гостевого доступа – guest ok = no. Для того, чтобы разделить доступ к ресурсам будем использовать группы пользователей, создадим две новые группы для наших подразделений:
groupadd smbbuch
groupadd smbadm
Теперь создадим каталоги:
mkdir /samba/buch
mkdir /samba/adm
и изменим группу владельца:
chgrp smbbuch /samba/buch
chgrp smbadm /samba/adm
Затем установим права:
chmod 2770 /samba/buch
chmod 2770 /samba/adm
Значение 2770 обозначает что мы предоставляем полные права владельцу и группе, для остальных доступ запрещен. А первая двойка устанавливает SGID для каталога, что обеспечивает присвоение группы каталога каждому создаваемому в нем файлу.
В некоторых случаях определенный интерес представляет выставление дял каталога sticky bit, который означает, что удалить или переименовать файл может только его владелец, но работать с ним, в том числе изменять, может любой пользователь, имеющий права записи в каталог. Для этого вместо набора прав 2770 используйте права 3770.
На этом настройки закончены, не забываем перезапустить Samba. Но в наших группах пока нет пользователей, давайте добавим их туда.
Начнем с уже существующих пользователей, в нашем случае это пользователь andrey, который является главным администратором и должен иметь доступ к обоим ресурсам. Поэтому добавим его в обе группы:
usermod -aG smbbuch andrey
usermod -aG smbadm andrey
Затем добавим его в базу Samba:
smbpasswd -a andrey
При этом потребуется установить пароль для доступа к Samba-ресурсам, он должен совпадать с основным паролем пользователя. После чего включим эту учетную запись:
smbpasswd -e andrey
Проверяем, после ввода пароля мы должны получить доступ к созданным нам ресурсам. Также обратите внимание, после аутентификации в списке общих ресурсов появилась папка с именем пользователя, подключенная только на чтение.
С настройками по умолчанию Samba предоставляет каждому существующему пользователю доступ только на чтение к его домашнему каталогу. На наш взгляд это довольно удобно и безопасно. Если вас не устраивает такое поведение – удалите из конфигурационного файла секцию [homes].
Теперь о других пользователях. Скажем у нас есть бухгалтер Иванова и админ Петров, каждый из которых должен иметь доступ к своему ресурсу. В тоже время иметь доступ к самому Samba-серверу им необязательно, поэтому создадим новых пользователей следующей командой:
useradd -M -s /sbin/nologin ivanova
useradd -M -s /sbin/nologin petrov
Ключ -M заводит пользователя без создания домашнего каталога, а -s /sbin/nologin исключает возможность входа такого пользователя в систему.
Поместим каждого в свою группу:
usermod -aG smbbuch ivanova
usermod -aG smbadm petrov
Затем добавим их в базу Samba, при этом потребуется установить им пароли:
smbpasswd -a ivanova
smbpasswd -a petrov
И включим эти учетные записи
smbpasswd -e ivanova
smbpasswd -e petrov
Если все сделано правильно, то пользователь будет иметь доступ к своим ресурсам и не иметь к чужим.
Также обратите внимание, что несмотря на то, что общий ресурс с именем пользователя создан, доступ он к нему получить не сможет, так как физически его домашняя директория не существует.
Чтобы подключиться к общему каталогу, необходимо установить клиент для подключения:
sudo apt-get install smbclient
Для подключения используйте следующий формат команды:
smbclient -U <пользователь> \\\<общий каталог=””>
Также можно выполнить монтирование общего каталога, для этого установите дополнительный пакет утилит:
sudo apt-get install cifs-utils
Для монтирования используйте следующий формат команды:
mount -t cifs -o username=<пользователь>,password= ///<общий каталог=””> <точка монтирования=””>
Где – адрес машины, на которой расположена общая директория, а <общий каталог=””> – путь до общей директории.
Например:
mount -t cifs -o username=Everyone,password= //10.0.1.2/Win /root/shares/public
Если общий каталог находится на Linux?
Для подключения к публичной папке не требуется вводить логин или пароль, достаточно в адресную строку ввести нужный ip-адрес без ввода дополнительной информации. Для подключения к приватному каталогу введите логин и пароль пользователя в появившееся окно.
P. S. Другие инструкции:
- Маршрутизация внутри локальной сети на pfSense
- Настройка site-to-site VPN сети с помощью VyOS
- Чек-лист параметров безопасности сервера Windows/Linux
- Как настроить vsftpd на Ubuntu
- Настройка FTP-сервера на Windows Server 2016
Как установить и настроить Samba в Ubuntu
Установка Samba на Ubuntu
Запустите терминал, нажав комбинации клавиш Ctrl + Alt + T, затем введите следующую команду для установки Samba.
sudo apt install samba
Проверьте установку Samba
Вы можете проверить, успешно ли Samba установлена и работает, введя следующую команду. Он покажет статус службы Samba.
sudo systemctl status nmbd
Вы можете видеть, что Samba активна и работает.
Конфигурация Samba
Как только вы закончите установку, вам нужно будет ее настроить.
1. Сперва нам нужно создать каталог Samba, в котором будут храниться общие данные. Откройте Терминал и выполните следующую команду от имени sudo:
sudo mkdir /samba
Это создаст новый подкаталог samba в корневом каталоге.
2. На всякий случай сделаем резервную копию файла конфигурации, скопировав его в тот же или другой каталог. Чтобы скопировать файл, выполните следующую команду:
sudo cp /etc/samba/smb.conf /etc/samba/smb_backup.conf
3. Теперь отредактируем файл конфигурации. Он находится в каталоге /etc/samba/ в файле smb.conf. Вы можете использовать Gedit, Nano или Vim для его редактирования.
sudo nano /etc/samba/smb.conf
Теперь мы настроим наш новый каталог samba как общий ресурс. Добавьте следующие строки в конец файла smb.conf.
[samba-share]comment = Samba on Ubuntu
path = /samba
read only = no
browsable = yes
[samba-share] – название ресурса
comment – Добавить краткое описание акции
path – Это каталог вашего общего ресурса.
read only -Указывает, разрешена ли запись в каталог
browsable – должен ли общий ресурс быть указан в списке общих ресурсов
Нажмите Ctrl + O для сохранения и Ctrl + X для выхода.
Настройка учетной записи пользователя Samba
Теперь настроим учетную запись пользователя Samba. Samba использует системную учетную запись для доступа к общему ресурсу, но не принимает пароль системной учетной записи. Если пользователя в системе еще нет, его нужно создать.
sudo useradd username
Нужно будет установить пароль для этой учетной записи, введя следующую команду от sudo. При запросе введите новый пароль.
sudo smbpasswd -a username
Перезапуск Samba
После завершения всех настроек перезапустите службу Samba, выполнив следующую команду:
sudo systemctl restart smbd.service
Подключение к общему ресурсу Samba
Для доступа к файлам сервера Samba IP-адрес вашего сервера Samba и клиентов, подключающихся к нему, должны находиться в одной сети.
Например, в моем сценарии у меня есть сервер Samba и клиент Windows. Обе машины находятся в одной сети.
IP Samba (Сервер): 192.168.10.1/24
IP-адрес Windows (клиент): 192.168.10.201/24
Настройка IP-адреса сервера Samba
Вы можете проверить IP-адрес любой машины, запустив команду ip a в Терминале.
Подключение из Windows
Вы можете подключиться к общему ресурсу Samba из ОС Windows двумя способами: с помощью утилиты Run либо с использованием проводника
Редактирование файла конфигурации
Там только один конфигурационный файл , который необходимо отредактировать: /etc/samba/smb.conf.
sudo nano /etc/samba/smb.conf
В разделе [global], убедитесь, что значение workgroup относиться к рабочей группе компьютеров Windows.
workgroup = WORKGROUP
Прокрутите вниз к нижней части файла. (В текстовом редакторе nano, нажмите CTRL+W а затем CTRL+V.) Включите новый раздел, как показано ниже. Замените username на необходимое имя пользователя.
[Home Share ] comment = Home Public Folder path = /home/username/ writable = yes valid users = username
Home Share это имя папки , которое будет отображаться в сети Windows. Комментарием является описание общей папки. Следующие 3 строки указывают, что только указанный пользователь valid users имеет право доступа к каталогу /home/username/, который также доступен для записи. Вышеуказанная конфигурация отключит анонимный доступ.
Сохраните и закройте файл, а затем выполните следующую команду, чтобы проверить, если есть синтаксические ошибки.
testparm
Создание пользователя
Samba содержит по умолчанию user в качестве режима защиты, означает, что клиенты должны ввести имя пользователя и пароль для доступа к общей папке. Чтобы добавить пользователя в Ubuntu, выполните следующую команду:
sudo adduser username
Вам будет предложено установить пароль Unix. Кроме того, необходимо установить отдельный Samba пароль для пользователя с помощью следующей команды:
sudo smbpasswd -a username
Теперь все, что осталось сделать, это перезапустить демон smbd.
sudo systemctl restart smbd
Доступ Samba к общей папки из Windows
На компьютере Windows, который находится в той же сети, откройте проводник и нажмите Сеть на левой панели. Вы увидите сервер самбы. Дважды щелкните общую папку и введите имя пользователя и пароль.
Доступ Samba к ресурсу папке с компьютера Ubuntu
В диспетчере файлов, перейдите на вкладку Сеть на левой панели и выберите Сеть Windows.
Выберите рабочую группу, сервер Samba и общую папку, а затем введите имя пользователя и пароль Samba.
Добавление нескольких пользователей или групп
Если нескольким учетным записям необходимо получение доступа к общей папке, то необходимо изменить правомерных пользователей, как показано ниже в файле /etc/samba/smb.conf.
valid users = user1, user2, user3
Также используйте smbpasswd для установки пароля Samba для каждого из этих пользователей.
sudo smbpasswd -a user1 sudo smbpasswd -a user2 sudo smbpasswd -a user3
Для того, чтобы разрешить группе пользователей получить доступ к общей папке, используйте следующую конфигурацию /etc/samba/smb.conf.
valid users = @sambashare
Создайте группу.
sudo groupadd sambashare
Затем добавьте в эту группу пользователей
sudo gpasswd -a user1 sambashare sudo gpasswd -a user2 sambashare sudo gpasswd -a user3 sambashare
Группа должна иметь разрешение на запись в общую папку, которая может быть достигнута при следующих двух команд.
Набор sambashare как владельца группы общей папки:
sudo chgrp sambashare /path/to/shared/folder -R
Предоставить право на запись в группе.
sudo chmod g+w /path/to/shared/folder/ -R
Все!
Настройка общих ресурсов Samba
У каждого ресурса есть свой раздел в файле конфигурации /etc/samba/smb.conf. Разделы ресурсов расположены после глобальных параметров и имеют следующий вид
[имя_ресурса] path = browseable = read only = force create mode = force directory mode = valid users =
share_name — имя ресурса, используемое при доступе.
path — полный путь к ресурсу в файловой системе.
browsable — опоеделяет видимость ресурса для других пользователей, но не дает им прав доступа.
read only — определяет возможность доступа на запись для пользователей, указанных в параметре valid users.
force create mode — задает указанные права доступа к любому файлу, создаваемому в ресурсе.
force directory mode — задает указанные права доступа к любой директории, создаваемой в ресурсе
valid users — список пользователей, имеющих доступ к ресурсу. Здесь можно указывать имена или группы, перед группами нужно указывать символ @, например, @admins.
Для настройки конфигурации ресурса нужно в любом текстовом редакторе добавить в файл конфигурации блоки следующего вида для каждого пользователя:
[ivan] path = /samba/ivan browseable = no read only = no force create mode = 0660 force directory mode = 2770 valid users = ivan @admins
Для ресурса everyone блок будет выглядеть следующим образом:
[everyone] path = /samba/everyone browseable = yes read only = no force create mode = 0660 force directory mode = 2770 valid users = @sambashare @admins
Все пользователи будут иметь доступ на чтение и запись, так как были добавлены в группу sambashare при создании. Теперь нужно протестировать параметры
$testparm
Если все настроено корректно, результат будет следующим:
После проверки конфигурации запустим сервер и добавим его в автозагрузку командой systemctl:
$sudo systemctl start smbd.service $sudo systemctl enable smbd.service
Сервер работает и готов принимать пользователей.
Настройка клиентов Samba
Для доступа к ресурсам из командной строки в Linux используется утилита smbclient. В большинстве дистрибутивов она не установлена по умолчанию, если нет то нужно воспользоваться менеджером пакетов:
$sudo apt-get install smbclient
В некоторых дистрибутивах может потребоваться создать файл /etc/samba/smb.conf, так как при его отсутствии будет выводиться сообщение об ошибке. Для доступа к ресурсу нужно выполнить следующую команду:
$smbclient //имя_или_адрес_сервера/ресурс -U пользователь
Например, для доступа к ресурсу ivan на сервере samba.example.com нужно ввести:
$smbclient //samba.example.com/ivan -U ivan
Далее потребуется ввести пароль, после чего появится интерфейс командной строки, похожий на интерфейс FTP:
Например, можно создать директорию:
smb: > mkdir test smb: > ls
Доступ из командной строки используется в основном для тестирования, на практике доступ чаще всего осуществляется из графических оболочек, например, KDE. Возможен также доступ из других платформ (Windows, MacOS).
Например для доступа с windows наберите в строке поиска \samba.example.comivan. И введите логин пароль
После чего вы сможете получить доступ к сетевым ресурсам.
Заключение
При помощи Samba мы создали мультиплатформенные сетевые ресурсы и протестировали доступ к ним. Ресурсы Samba очень распространены и могут использоваться различными приложениями. Например, VLC Player может проигрывать музыку и видео из ваших ресурсов Samba, а утилита резервного копирования BackupPC — записывать туда резервные копии.
- https://1cloud.ru/help/network/nastroika-samba-v-lokalnoj-seti
- https://interface31.ru/tech_it/2019/06/nastroyka-faylovogo-servera-samba-na-platforme-debian-ubuntu.html
- https://admin812.ru/kak-ustanovit-i-nastroit-samba-v-ubuntu.html
- https://andreyex.ru/ubuntu/kak-ustanovit-i-nastroit-server-samba-na-ubuntu-16-04-dlya-obshhego-dostupa-k-fajlam/
- https://ITProffi.ru/ustanovka-i-nastrojka-samba-servera-i-klientov/
Для начала определимся, что такое Samba и для чего она нужна. По материалам ru.wikipedia.org
Samba — пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS.
Все операции ниже написаны для учетной записи root (если вы используете чит код login=root)
Заметка. Для учетной записи guest приведены примеры в заметках к данной статье.
1. Откройте терминал и сделайте резервную копию smb.conf
Заметка. Актуально только для старых версий Samba.
Предварительно переименуйте smb.conf-sample в smb.conf командой:Code: Select all
mv /etc/samba/smb.conf-sample /etc/samba/smb.conf
после чего откройте /etc/samba/smb.conf
2. Найдите и пропишите рабочую группу, которая используется в Windows вашей локальной сети.
Заметка. В новых версиях Samba по умолчанию указана группа WORKGROUP
Например, у Вас рабочая группа WORKGROUP, тогда находим
Code: Select all
# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2
workgroup = MYGROUP
и заменяем на
Code: Select all
# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2
workgroup = WORKGROUP
Чтобы открыть общий доступ к принтерам для учетных записей guest и root — найдите:
Code: Select all
# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print
guest ok = no
writable = no
printable = yes
замените на:
Code: Select all
# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
comment = All Printers
path = /var/spool/samba
browseable = yes
# Set public = yes to allow user 'guest account' to print
guest ok = yes
writable = no
printable = yes
Чтобы открыть общий доступ к определенному разделу или каталогу, добавляем в самый конец файла /etc/samba/smb.conf
Code: Select all
[porteus]
path = /mnt/sdb1
public = yes
guest ok = yes
browseable = yes
writable = yes
printable = no
[porteus] — это отображаемое имя (на ваше усмотрение) расшаренной папки или раздела.
path = /mnt/sdb1 — это директория или расшаренный раздел (в данном примере раздел), к которому Вы хотите открыть общий доступ.
Заметка. Проверить правильность оформления (синтаксиса) /etc/samba/smb.conf можно с помощью команды:
3. Открываем терминал и выполняем команду
задаем пароль для учетной записи root
по умолчанию, в данном примере, вводим пароль toor
но лучше задать свой, произвольный и желательно непростой пароль.
Заметка. Для учетной записи guest
задаем пароль для учетной записи guest
по умолчанию, в данном примере, вводим пароль guest
но лучше задать свой, произвольный и желательно непростой пароль.
Затем в терминале выполняем команду на добавление пользователя root
Заметка. Для учетной записи guest
Затем в терминале выполняем команду на добавление пользователя guest
далее делаем исполняемым файл
и стартуем samba сервер командой
— если необходима перезагрузка samba сервера, то пользуемся командой
— если не знаете IP адрес с запущенным samba сервером, введите команду
в логе команды находим IP адрес и запоминаем его (IP должен быть статическим).
4. Переходим на другую локальную машину (в которую входит samba сервер Porteus), например под управлением Windows — открываем там Explorer (он же проводник — два раза нажимаем левой кнопкой мыши по Мой компьютер, Компьютер, Этот компьютер, в зависимости от версии Windows) и вводим в строке адреса
вводим логин root и пароль toor (или свой пароль, заданный ранее) и не забываем поставить галочку “Запомнить учетные данные”
Заметка. Для учетной записи guest
вводим логин guest и пароль guest (или свой пароль, заданный ранее) и не забываем поставить галочку “Запомнить учетные данные”
Так же можете подключить сетевой диск. В нашем примере директория до расшаренного раздела будет выглядеть так:
вводим логин root и пароль toor (или свой пароль, заданный ранее) и не забываем поставить галочку “Запомнить учетные данные”
Заметка. Для учетной записи guest
вводим логин guest и пароль guest (или свой пароль, заданный ранее) и не забываем поставить галочку “Запомнить учетные данные”
Если используется файловый менеджер Linux, то в адресной строке необходимо ввести свои данные в формате:
Для обзора сети можно воспользоваться командой
smbtree — это SMB обозреватель в текстовом режиме. Аналог «Обозревателя Сети» существующего на компьютерах Windows. Отображает дерево со всеми доменами, сервера этих доменов и общие ресурсы на серверах.
Linux 5.15.11-porteus #1 SMP Sat Dec 25 13:08:57 MSK 2021 x86_64 Intel(R) Core(TM) i5-6600K CPU @ up to 4.60GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Navi 23 [Radeon RX 6600] [1002:73ff] (rev c7) » Vengeance LPX 16GB DDR4 K2 3200MHz C16