Как подключиться к самба серверу на windows

Пожалуй нет ни одного офиса, в котором не применялись бы общие ресурсы локальной сети, будь то папки или принтеры. Крупные и средние компании используют возможности Active Directory, компании поменьше – используют штатные средства ОС Windows или Samba, но на серверах под управлением ОС Linux. Рассмотрим все случаи, как настроить Samba.

Что такое Samba?

Samba – серверное приложение, реализующее доступ клиентских терминалов к папкам, принтерам и дискам про протоколу SMB/CIFS.

Описание структуры Samba

Настройка общих папок в 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 кликаем по кнопке “Общий доступ”.

Общий доступ к файлам в Samba | Serverspace

В открывшемся окне добавляем пользователя “Все”, а также делегируем права на “Чтение и запись”. Кликаем по кнопке “Поделиться”.

Выбираем права и делимся ими с пользователями

В обновленном окне нажимаем “Готово”.

Нажимаем готово

Настроим папку общего доступа, но для ограниченного круга лиц.

Кликаем правой кнопкой мыши по папке, выбираем “Свойства”.

В открывшемся окне переходим на вкладку “Доступ”. Кликаем по кнопке “Расширенные настройки”.

В новом открывшемся окне, устанавливаем галку “Открыть общий доступ к этой папке”. Затем кликаем по кнопке “Разрешения”.

Открываем общий доступ к этой папке

В открывшемся окне, в поле “Группы или пользователи” выбираем “Все” и нажимаем кнопку “Удалить”.

Удаляем пользователя

Таким образом установлен запрет на анонимный доступ к папке.

Окно обновится. Кликаем по кнопке “Добавить”.

В открывшемся окне кликаем по кнопке “Дополнительно”.

Выбираем дополнительные параметры

Окно изменится в размере. Кликаем по кнопке “Поиск”. Двойным кликом выбираем пользователя, которому необходим доступ к этому каталогу, например, 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, а поле пароля оставляем пустым.

Для подключения к общей папке выбираем 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”.

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]Flowchart-How to access Samba share from Windows

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:Clicking on folder icon 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.Entering credentials ❹ Once done with the connection, you can access all the shared files and folders inside the shared one.Accessing folders from Samba share using file explorer 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:clicking on 'Map network drive'❷ Now, choose a Drive, enter the path for the Samba share and click Finish.Choosing a drive and path for Samba share 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.Entering credentials to accessAfter this, you can see that the Samba shared folder has been mapped to the selected drive.New Samba share drive created❹ Now, double click on the new drive and you can access the files and folders inside the Samba share.Accessing Samba share from mapped-driveFrom 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’.

Writing command in command prompt to access Samba shareIf 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:New Samba drive created using command promptThus, 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.

Writing command in PowerShell 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.Inserting PowerShell credentialsYou can see in the following screenshot that the Samba share has been mapped to the specific drive you chose.New drive created using PowerShell❸ 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.

Navigating to new Samba drive using PowerShellAfter 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
  • User-friendly interface.
  • No syntax complexity.
  • Instant visual feedback.
  • Lacks advanced automation.
  • Limited custom options.
Method 2
  • Faster.
  • Automation utility.
  • More advanced options.
  • Requires proficient users.
  • Less visual response.

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.Prompting to PowerShell windowAll 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.

Seeing the content list inside Samba share using PowerShellYou 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.

Creating new files in a mounted Samba drive using PowerShellYou 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.

Removing mapped Samba drive using PowerShellFrom 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-debian-002.png
Если все сделано правильно, то сервер появится в сетевом окружении, и вы без проблем получите доступ к созданной нами общей папке.

Настройка корзины для общего ресурса

Полезность корзины на файловом сервере, пожалуй не будет отрицать никто. Человеку свойственно ошибаться и будет очень обидно, если ценой ошибки окажется несколько часов работы, но, к счастью Samba позволяет помещать удаленные файлы в корзину.

Для активации корзины добавьте в секцию к общему ресурсу следующие строки:

vfs objects = recycle
recycle:repository = .recycle
recycle:versions = yes
recycle:keeptree = yes

Первая опция добавит в общий ресурс новый объект – корзину, вторая укажет ее расположение – скрытая папка в корне. Две следующих включают сохранение структуры папок при удалении и сохранение нескольких версий файла с одним и тем же именем. Это нужно в тех случаях, когда разные пользователи удалят разные файлы с одним и тем же именем.

Перезапустим Samba и попробуем что-нибудь удалить.

samba-debian-005.png
Несмотря на грозное предупреждение Проводника удаляемые файлы перемещаются в корзину, откуда мы их можем восстановить.

Как видим, работать с Samba не просто, а очень просто, при том, что мы оставили за кадром многие возможности тонкой настройки, многие из которых требуют отдельных статей. Надеемся, что данный материал окажется вам полезным и поможет быстро и без проблем развернуть файловый сервер на Linux.

Настройка общего публичного каталога на Windows

Для общего доступа к файлам по сети в Windows используются стандартные средства ОС.

Чтобы пользователи локальной сети могли без пароля подключаться к общему ресурсу, необходимо в панели управления снять ограничения защиты. Откройте панель управления и перейдите в раздел Сеть (Network and Internet) -> Центр управления сетями и общим доступом (Network and Sharing Center) -> Расширенные настройки общего доступа (Advanced sharing settings). В разделе Все сети (All Networks) выберете опцию Отключить доступ с парольной защитой (Turn off password protected sharing) и сохраните изменения.

Turn off password

Далее, чтобы настроить общий доступ к каталогу на Windows необходимо создать или выбрать нужный и открыть его свойства. В свойствах перейдите во вкладку Доступ (Sharing) и нажмите Расширенная настройка (Advanced Sharing).

Win Properties

В открывшемся окне отметьте галочкойОткрыть общий доступ к этой папке (Share this folder), для того чтобы она стала общедоступной. В полеИмя общего ресурса (Share name) введите имя, которое будет видно всем пользователям. Далее нажмитеРазрешения (Permissions)для настройки прав доступа.

Advanced Sharing

Выберете нужные права доступа для всех пользователей (Everyone). НажмитеПрименить (Apply), чтобы изменения вступили в силу.

отметить галочками Allow

Теперь в свойствах каталога нажмитеОбщий доступ (Share).

Share

В поле поиска введитеВсе пользователи (Everyone)и нажмитеДобавить (Add). Для полного доступа выберете праваRead/Writeи нажмите Поделиться (Share).

Выберите Everyone

Done

Теперь ваш каталог 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-debian-003.png

С настройками по умолчанию 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

Если все сделано правильно, то пользователь будет иметь доступ к своим ресурсам и не иметь к чужим.

samba-debian-004.png
Также обратите внимание, что несмотря на то, что общий ресурс с именем пользователя создан, доступ он к нему получить не сможет, так как физически его домашняя директория не существует.

Чтобы подключиться к общему каталогу, необходимо установить клиент для подключения:

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 Ubuntu 16.04

Выберите рабочую группу, сервер Samba и общую папку, а затем введите имя пользователя и пароль Samba.

Samba Ubuntu

Добавление нескольких пользователей или групп

Если нескольким учетным записям необходимо получение доступа к общей папке, то необходимо изменить правомерных пользователей, как показано ниже в файле /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 имеет ряд особенностей.

Настройка через терминал

Сама Samba – это программа, которая предназначена для обращения к различным сетевым интерфейсам, в том числе принтерам, с помощью особого протокола «SMB/CIFS». Состоит из серверной (работающей на Linux, MAC и других Unix-подобных OS) и клиентской части, которую можно установить даже на Windows 7, 8, 10.

Поскольку серверная часть программы предназначена для ОС Ubuntu, рассмотрим порядок ее настройки, а также затронем настройки Windows для обеспечения доступа.

Настройки Windows

Для того, чтобы программа работала корректно, нужно убедиться в том, что все компьютеры сети подключены к одинаковой рабочей группе. Обычно, в поле «Название группы» внесено значение «WORKGROUP». Чтобы определить, в какую группу входит используемый ПК, необходимо использовать командную строку:

  1. Нажать на клавиатуре комбинацию клавиш «WIN+R». В открывшемся окне ввести «cmd».окно Выполнить
  2. Далее, в окне консоли ввести «net config workstation».net config workstation

Следует обратить внимание на пункт «Домен рабочей станции».

  1. Если на ПК с ОС Ubuntu выставлен статический ip-адрес, следует указать его в файле «hosts». Найти его можно в папке «etc», которая, в свою очередь хранится в папке «Windows\system32».
  2. После последнего адреса в списке написать нужный IP-адрес.

Настройка Виндоус окончена.

Настройка серверной части Самба

Теперь можно перейти к настройке операционной системы Samba на Ubuntu. В процессе будет использоваться консоль. Сам процесс настройки Samba Server несложен, но требует внимательности к деталям:

  1. По окончании инсталляции необходимо используя консоль вписать следующую команду, которая установит недостающие модули Самбы:
    sudo apt-get install -y samba python-glade2
  2. Вслед за этим нужно сделать бэкап существующего файла конфигурации:
    sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
  3. Создать новый файл конфигурации:
    sudo gedit /etc/samba/smb.conf
  4. В открывшийся документ нужно внести следующую информацию:
    [global]
    workgroup = WORKGROUPE
    netbios name = gate
    server string = %h server (Samba, Ubuntu)
    dns proxy = yes
    log file = /var/log/samba/log.%m
    max log size = 1000
    map to guest = bad user
    usershare allow guests = yes
  5. Сохранить изменения кликом по кнопке в правом верхнем углу.Сохранить изменения

Также следует откорректировать файл «limits.conf»:

  1. Открыть его с помощью текстового редактора:
    sudo gedit /etc/security/limits.conf
  2. Прокрутить вниз и перед последней строчкой в документе добавить следующее:
    * - nofile 16384
    root - nofile 16384
  3. Сохранить изменения.

Результат:Результат использования

Создание общих папок

Затем следует создать общие папки на сетевом файловом сервере Samba:

  1. Сперва следует создать обычную директорию, название которой может быть абсолютно любым. Команда для консоли:
    sudo mkdir -p /*выбранный путь*/share
  2. Задать права для того чтобы все пользователи смогли проводить операции над вложенными файлами. При этом следует указать точный путь:
    sudo chmod 777 -R /*…*/share
  3. Открыть конфигурационный файл, чтобы добавить в него некоторые данные:
    sudo gedit /etc/samba/smb.conf
  4. После блока «Global» добавить следующее:
    [Share]
    comment = Full Share
    path = *…*/share
    guest ok = yes
    browsable = yes
    writable = yes
    read only = no
    force user = user
    force group = users
  5. Сохранить изменения. В результате должно получиться следующее:Результат сохранения
  6. Перезапустить Самбу:
    sudo service smbd restart

Найти созданную директорию на ПК с Windows можно через «Проводник» — «Сеть».Настройки сети

Неизменяемые папки

Если есть нужда в директории, над которой нельзя будет проводить операции редактирования – создается таковая с правами «Для чтения». Процедура идентична, за исключением некоторых параметров:

  1. Создать папку, назвать ее, например, «readonly». В терминале ввести:
    sudo mkdir -p /readonly
  2. Дать папке необходимые права:
    sudo chmod 777 -R readonly
  3. Следующей командой открыть конфигурацию:
    sudo gedit /etc/samba/smb.conf
  4. Вновь добавить фрагмент текста в конец файла:
    [Read]
    comment = Only Read
    path = /readonly
    guest ok = yes
    browsable = yes
    writable = no
    read only = yes
    force user = user
    force group = users
  5. Сохранить документ.

Папки с закрытым доступом

Для создания папки с аутентификацией и проверкой разрешений нужно:

  1. Создать папку, к примеру «Auth»:
    sudo mkdir -p /Auth
  2. Задать права:
    sudo chmod 777 -R /Auth
  3. Задать группу пользователей на свой выбор, а затем и пользователя, которому дать права доступа по авторизации.
  4. Добавить пользователя, например, «teacher»:
    sudo useradd -g smbuser teacher
  5. Задать пароль для авторизации:
    sudo smbpasswd -a teacher
  6. Внести изменения в файл конфигурации, добавив фрагмент:
    [Pasw]
    comment = Only password
    path = /auth
    valid users = teacher
    read only = no

Графический интерфейс System Config Samba

Установка интерфейса

Для удобства управления настройками файлового сервера Samba можно подключить графический интерфейс:

  1. Для установки нужно ввести в консоли следующую команду:
    sudo apt install system-config-samba
  2. Вместе с этим установить все сопутствующие компоненты Самба:
    sudo apt-get install -y samba samba-common python-glade2 system-config-samba
  3. Перейти к запуску и настройке.

Запуск

Запустить System Config Samba из терминала:

  1. Нажать сочетание клавиш «CTRL+ALT+T».
  2. В окне консоли ввести:
    sudo system-config-samba
  3. Нажать «Enter».
  4. Ввести системный пароль.

Добавляем пользователей

Перед настройкой папок нужно создать пользователей:

  1. На верхней панели выбрать вкладку «Настройка».Выбрать Настройки
  2. Выбрать пункт «Пользователи Samba».Пользователи Samba
  3. В следующем окне выбрать пункт «Добавить пользователя».Добавить пользователя
  4. В выпадающем списке выбрать имя пользователя, которому может быть предоставлен доступ.Выбор имени
  5. Ввести имя пользователя в Windows.имя пользователя в Windows
  6. Ввести пароль с подтверждением.Пароль с подтверждением
  7. Нажать «ОК».

Настраиваем сервер

Настройка сервера упрощается через графический интерфейс:

  1. Выбрать вкладку «Настройки».Выбрать Настройки
  2. Далее «Параметры сервера».Параметры сервера
  3. Вкладка «Основной», ввести название группы в поле «Рабочая группа».Рабочая группа
  4. Параметр описания не влияет ни на что, поэтому его значение можно не изменять.Ввод описания
  5. Перейти к вкладке «Безопасность».Вкладка безопасности
  6. Выбрать режим аутентификации — «Пользователь».Режим аутентификации
  7. Выбрать в пункте «Шифровать пароли» вариант «Да».Шифровать пароли
  8. Выбрать учетную запись гостя.Выбрать запись гостя
  9. Нажать «ОК».

Создаем папки

Если папки не были созданы ранее, главное окно будет пустым. Для создания нужно провести ряд действий:

  1. Кликнуть по кнопке в виде плюса. Произойдет переход к окну создания.Создание папки
  2. Нажать «Обзор» в открывшемся окне.Выбор каталога
  3. Указать папку, к которой будет предоставлен общий доступ.Включение общего доступа
  4. Отметить галочками пункты «Виден» и «Общедоступен».Выбор настроек
  5. Перейти к вкладке «Доступ».Вкладка доступа
  6. На данной вкладке выбрать пользователей, которые получат доступ к папке.Выбор пользователя
  7. Для создания общедоступной папки выбрать «Предоставить доступ всем».
  8. Нажать на «ОК».

В главном окне отобразится созданная директория.Созданная директория

Файловый менеджер Nautilus

Также эти операции можно провести в популярном файловом менеджере Nautilus.

Установка

Прежде всего необходимо выполнить установку:

  1. Открыть «Nautilus» кликом по иконке на панели задач.Менеджер Nautilus
  2. Перейти в расположение с директорией для общего доступа. Нажать правой кнопкой мыши и выбрать пункт «Свойства».Свойства
  3. Перейти на вкладку «Общедоступная папка локальной сети».Общедоступная папка локальной сети
  4. Выбрать пункт «Опубликовать эту папку».Опубликовать эту папку
  5. Откроется окно, в котором кликнуть по кнопке «Установить службу» для начала установки Самбы.Установить службу
  6. Будет открыто окно, в котором можно просмотреть описание устанавливаемых пакетов. Нажать «Установить».Установить
  7. Ввести пароль пользователя для продолжения установки.Ввод пароля

Дождаться завершения установки и перейти к настройке.

Основные настройки

Настройка Самба из Наутилуса намного упрощается, в сравнении с предыдущими способами.

Для добавления общедоступности директории нужно:

  1. Перейти на вкладку «Права».Настройки прав
  2. Определить права для всех типов пользователей.Выбор прав
  3. Для ограничения доступа какой-либо группе выбрать из списка «Нет».
  4. Далее перейти в меню «Изменить права на вложенные файлы».Изменить права
  5. Точно также, как и во втором пункте определить права на взаимодействие с файлами.права на взаимодействие
  6. Нажать «Изменить», затем перейти к вкладке «Общедоступная папка локальной сети».Общедоступная папка локальной сети
  7. Отметить галочкой вариант «Опубликовать эту папку».Опубликовать папку
  8. Ввести название папки.Ввод названия
  9. Поставить, либо убрать галочки, позволяющие проводить операции и предоставлять общий доступ пользователю без учетной записи.Убрать галочку
  10. Нажать «Применить».

Стоит отметить, что без настройки Самбы папки могут не стать общедоступными.

Для работы бывает необходимо подключаться из Linux к общей папке Windows, чтобы забрать или передать файлы. В организациях в 99% используются компьютеры под управлением Windows, поэтому приходится подключаться из Linux к Windows.

Установка Samba клиента в Linux

sudo apt-get update
sudo apt-get install samba-client
sudo apt-get install cifs-utils

Для удобства просмотра сетевого окружения в GUI удобен файловый менеджер Nautilus с дополнением Nautilus-share

sudo apt-get install nautilus nautilus-share

Просмотр общих сетевых ресурсов с помощью командной строки

Вызов клиента Samba для просмотра ресурсов сервера из командной строки:

1) просмотр общих папок, предоставленных в общий доступ по сети для локальных пользователей сервера

smbclient -L //192.168.100.10 -U Username%Password

либо

smbclient -L //servername -U Username%Password

где: 192.168.100.10 — IP адрес сервера, servername — имя сервера, Username — локальный пользователь сервера, Password — пароль пользователя Username

2) просмотр общих папок, предоставленных в общий доступ по сети для пользователей домена

smbclient -L //192.168.100.10 -U Domain/Username%Password

либо

smbclient -L //192.168.100.10 -U Username%Password -W Domain

или по имени

smbclient -L //servername -U Username%Password -W Domain

где Domain — имя домена Active Directory.

Либо (чтобы каждый раз не сообщать пароль в параметрах команды) создать файл ~/.smbcredentials
с данными входа:

username=имя_пользователя
password=пароль
domain=имя_standalone_сервера_или_домена

Тогда, присоединение к сетевому каталогу:

smbclient //server/share --authentication-file=/home/vladimir/.smbcredentials 

Подключение к общей папке Samba в интерактивном режиме

То же самое, но без ключа -L, но с параметром — именем общей папки, в данном случае «share»

smbclient //192.168.100.10/share -U Domain/Username%Password

либо

smbclient //servername/share -U Domain/Username%Password

либо

smbclient //servername/share -U Username%Password -W Domain

После успешного входа появится приглашение

smb: \>

можно вводить команды, например, help или dir. Интерфейс для управления smbclient с помощью команд напоминает ftp клиент.

Подключение к общим папкам с помощью файлового менеджера Nautilus

После запуска nautilus, выберите в левой части окна «+ Другие места» — откроется просмотр локальной сети, где можно просматривать компьютеры в сети, у которых имеются общие папки.

Решение проблемы с подключением: избавляемся от ошибки -13 Access Denied, либо NT_STATUS_ACCESS_DENIED

Ошибка: CIFS: VFS: cifs_mount failed w/return code = -13"

Данную ошибку можно решить только настройкой прав на сервере. Чтобы открыть общую папку на просмотр, нужны три условия:
1) Пользователь указан среди пользователей сервера или домена (либо доступ типа guest разрешён)
2) Предоставлен (не ограничен) доступ к файловой системе.
3) Дан доступ к конкретной сетевой папке — например, пользователь входит в группу пользователей, к которой дан доступ к общей папке.

Последнее, третье условие самое строгое. Нужно, чтобы Администратор сервера предоставил права пользователю (включил его в группу пользователей общей папки).

Самое интересное, что права Администратора не гарантируют даже ему полных прав доступа к общей папке, т.к. необходимо, чтобы пользователь «Администратор» входил в группу, которой предоставлены права к данной сетевой папке. В этом плане администратор не отличается от группы other/nobody: получит ошибку mount error(13): Permission denied, потому что он не входит в группу пользователей сетевой папки.

Использование команды «mount»

Вместо smbclient можно использовать команду mount.

Вначале нужно создать точки монтирования и дать права доступа к папке, например:

sudo mkdir /mnt/cifs
sudo chmod 0777 /mnt/cifs

Примеры использования команды mount с сетевым папками:

sudo mount -t cifs //192.168.20.222/share /mnt/cifs -o user=Vlad,pass=Str0ngPa$$word
ls  /mnt/cifs
sudo umount //192.168.20.222/share
ls  /mnt/cifs

Либо то же самое с файлом .smbcredentials :

sudo mount -t cifs //192.168.20.222/share /mnt/cifs -o credentials=/home/vladimir/.smbcredentials

Если имя сетевой папки содержит пробелы («share with spaces in name»), нужно вводить следующим образом:

sudo mount -t cifs //192.168.20.222/share\ with\ spaces\ in\ name /mnt/cifs -o credentials=/home/vladimir/.smbcredentials

Примечание: Чтобы после выполнения команды mount примонтированная папка работала бы не только на чтение, но и на запись в удалённую общую папку, нужно сопоставить удаленного пользователя с локальным пользователем Linux, при помощи параметров uid=1000,gid-1000. Где 1000 — заменить на uid и gid пользователя Linux (выводятся командой id).
Либо добавить в параметры -o noperm,iocharset=utf8.
В ключах команды можно задать версию Samba, которую используем для подключения. Например,
для SMB2: vers=2.0 или для SMB3 vers=3.0.

Примеры:

sudo mount -t cifs //192.168.20.222/share\ with\ spaces\ in\ name /mnt/cifs -o user=username,pass=password,uid=1000,gid=1000

sudo mount -t cifs //192.168.20.222/share\ with\ spaces\ in\ name /mnt/cifs -o credentials=/home/vladimir/.smbcredentials,vers=2.0,noperm 

Если заданная версия Samba (например, SMB3) не поддерживается сервером, будет выведена ошибка "mount error(95): Operation not supported.".

Добавление параметра «nofail» пригодится, когда не известно, включен ли удалённый компьютер (сервер) или нет.

Монтирование сетевой папки во время загрузки (файл /etc/fstab)

Синтаксис строки в /etc/fstab:

//[URL]/[sharename] /mnt/[mountpoint] cifs vers=3.0,credentials=/home/username/.sharelogin,iocharset=utf8,file_mode=0777,dir_mode=0777,uid=[username],gid=[username],nofail 0 0

где:
//[URL]/[sharename] — имя сервера и сетевой папки
/mnt/[mountpoint] — точка монтирования на локальном компьютере
vers=3.0 — принудительно установить версию протокола SMB3 (либо vers=2.0 — если клиент и сервер поддерживают лишь SMB2)
credentials=/home/username/.sharelogin — указание файла с именем пользователя, паролем и доменом для входа
iocharset=utf8 — прямое указание набора символов utf8 (не обязательно, если без него работает)
file_mode=0777,dir_mode=0777 — права доступа при выполнении mount
uid=[username],gid=[username] — данные uid и gid из результата вывода команды cat /etc/passwd | grep username
nofail — загрузка ОС будет продолжена даже в случае недоступности сервера URL

Другие параметры:
defaults — включает опции rw, suid, dev, exec, auto, nouser, and async. Обычно идёт первой, т.к. можно переопределить отдельные опции в строке позднее, например: defaults, noexec, ro — нет исполнения, только чтение.
rw — очевидно, чтение-запись со стороны клиента (является противоположностью ro — только чтение (защита от записи).
suid — запрещает использование бит полномочий SUID (Set-User-IDentifier — установка идентификатора владельца) или SGID (Set-Group-IDentifier). Грубо говоря, запрещает передачу части прав при помощи битов SUID и SGID — права должны быть заданы явно.
auto — используется в /etc/fstab — разрешает автоматическое монтирование сетевых ресурсов при выполнении команды mount -a
noauto — запрет для fstab монтировать папку автоматически при выполнении команды mount -a.
nouser — прямой запрет на «ручное» монтирование всеми пользователями, кроме root (не влияет на монтирование во время загрузки ОС)
guest — для доступа к «гостевым» общим папкам, которые доступны по сети без указания имени пользователя и пароля.
async — запись данных в сетевую папку производится по мере возможности — значение по умолчанию. Повышает производительность.
sync — немедленная запись на удаленный компьютер (без использования буферов), не рекомендуется.
noperm — отключает встроенную в клиент проверку прав. Используют noperm в том случае, если права вроде бы есть, но создать файл на запись, например, программно, не получается, из-за несовместимости в реализации CIFS на клиенте и сервере.
noexec — прямой запрет запуска исполнимых файлов из сетевой папки
noatime — не обновлять время создания файла (повышает производительность, но понижает информативность)
nounix — отключение расширений Linux: не использовать символические ссылки. Используется, чтобы отключить символьные ссылки для обеспечения совместимости с Windows.
mfsymlinks — ключ для символьных ссылок в стиле Minshall+French. Этот стиль ссылок поддерживается Windows и Mac.

Примеры строки в fstab (где данные входа указаны в файле /etc/.smbcredentials):

//192.168.20.222/share_name rw,auto,nofail,credentials=/etc/.smbcredentials 0 0

Если в /etc/hosts или локальном DNS сервере прописаны имена машин, вместо IP-адреса можно подключать общую папку по имени: //server/share .

Команда для монтирования на основе fstab:

sudo mount -a

Будет перемонтированы все диски на основе /etc/fstab за исключением помеченных параметром «noauto».

Краткая информация по настройки Samba в Windows (протоколы SMB1, SMB2, SMB3)

Samba протокол имеет три версии 1, 2 и 3.
Протокол SMB1 включают, если в организации имеются машины под Windows XP. В остальных случаях стараются отключить SMB1 как небезопасный.

Включение и выключение в Windows 7 и Windows Server 2008r2 производится с помощью реестра, параметры
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters
параметры типа DWORD
SMB1=0
SMB2=1

В Windows 8, Windows 10, 11, Windows Server 2012, 2016 и выше используется командлет PowerShell

Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol

Set-SmbServerConfiguration -EnableSMB2Protocol $true

Указанные командлеты не работают в ранний версиях Windows 7 и Windows Server 2008r2.
Также, SMB3 не работает в Win7 — подробнее см. здесь — сайт winitpro.ru.


Ссылки:

  • man mount.cifs

Похожие публикации

  • Как подключиться к серверу hyper v из windows 10
  • Как подключиться к расшаренной папке windows из linux
  • Как подключиться к прокси серверу windows 11
  • Как подключиться к проводной сети на windows 7
  • Как подключиться к папке общего доступа windows 10