Пожалуй нет ни одного офиса, в котором не применялись бы общие ресурсы локальной сети, будь то папки или принтеры. Крупные и средние компании используют возможности 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”.
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 имеет ряд особенностей.
Настройка через терминал
Сама Samba – это программа, которая предназначена для обращения к различным сетевым интерфейсам, в том числе принтерам, с помощью особого протокола «SMB/CIFS». Состоит из серверной (работающей на Linux, MAC и других Unix-подобных OS) и клиентской части, которую можно установить даже на Windows 7, 8, 10.
Поскольку серверная часть программы предназначена для ОС Ubuntu, рассмотрим порядок ее настройки, а также затронем настройки Windows для обеспечения доступа.
Настройки Windows
Для того, чтобы программа работала корректно, нужно убедиться в том, что все компьютеры сети подключены к одинаковой рабочей группе. Обычно, в поле «Название группы» внесено значение «WORKGROUP». Чтобы определить, в какую группу входит используемый ПК, необходимо использовать командную строку:
- Нажать на клавиатуре комбинацию клавиш «WIN+R». В открывшемся окне ввести «cmd».
- Далее, в окне консоли ввести «net config workstation».
Следует обратить внимание на пункт «Домен рабочей станции».
- Если на ПК с ОС Ubuntu выставлен статический ip-адрес, следует указать его в файле «hosts». Найти его можно в папке «etc», которая, в свою очередь хранится в папке «Windows\system32».
- После последнего адреса в списке написать нужный IP-адрес.
Настройка Виндоус окончена.
Настройка серверной части Самба
Теперь можно перейти к настройке операционной системы Samba на Ubuntu. В процессе будет использоваться консоль. Сам процесс настройки Samba Server несложен, но требует внимательности к деталям:
- По окончании инсталляции необходимо используя консоль вписать следующую команду, которая установит недостающие модули Самбы:
sudo apt-get install -y samba python-glade2
- Вслед за этим нужно сделать бэкап существующего файла конфигурации:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
- Создать новый файл конфигурации:
sudo gedit /etc/samba/smb.conf
- В открывшийся документ нужно внести следующую информацию:
[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
- Сохранить изменения кликом по кнопке в правом верхнем углу.
Также следует откорректировать файл «limits.conf»:
- Открыть его с помощью текстового редактора:
sudo gedit /etc/security/limits.conf
- Прокрутить вниз и перед последней строчкой в документе добавить следующее:
* - nofile 16384 root - nofile 16384
- Сохранить изменения.
Результат:
Создание общих папок
Затем следует создать общие папки на сетевом файловом сервере Samba:
- Сперва следует создать обычную директорию, название которой может быть абсолютно любым. Команда для консоли:
sudo mkdir -p /*выбранный путь*/share
- Задать права для того чтобы все пользователи смогли проводить операции над вложенными файлами. При этом следует указать точный путь:
sudo chmod 777 -R /*…*/share
- Открыть конфигурационный файл, чтобы добавить в него некоторые данные:
sudo gedit /etc/samba/smb.conf
- После блока «Global» добавить следующее:
[Share] comment = Full Share path = *…*/share guest ok = yes browsable = yes writable = yes read only = no force user = user force group = users
- Сохранить изменения. В результате должно получиться следующее:
- Перезапустить Самбу:
sudo service smbd restart
Найти созданную директорию на ПК с Windows можно через «Проводник» — «Сеть».
Неизменяемые папки
Если есть нужда в директории, над которой нельзя будет проводить операции редактирования – создается таковая с правами «Для чтения». Процедура идентична, за исключением некоторых параметров:
- Создать папку, назвать ее, например, «readonly». В терминале ввести:
sudo mkdir -p /readonly
- Дать папке необходимые права:
sudo chmod 777 -R readonly
- Следующей командой открыть конфигурацию:
sudo gedit /etc/samba/smb.conf
- Вновь добавить фрагмент текста в конец файла:
[Read] comment = Only Read path = /readonly guest ok = yes browsable = yes writable = no read only = yes force user = user force group = users
- Сохранить документ.
Папки с закрытым доступом
Для создания папки с аутентификацией и проверкой разрешений нужно:
- Создать папку, к примеру «Auth»:
sudo mkdir -p /Auth
- Задать права:
sudo chmod 777 -R /Auth
- Задать группу пользователей на свой выбор, а затем и пользователя, которому дать права доступа по авторизации.
- Добавить пользователя, например, «teacher»:
sudo useradd -g smbuser teacher
- Задать пароль для авторизации:
sudo smbpasswd -a teacher
- Внести изменения в файл конфигурации, добавив фрагмент:
[Pasw] comment = Only password path = /auth valid users = teacher read only = no
Графический интерфейс System Config Samba
Установка интерфейса
Для удобства управления настройками файлового сервера Samba можно подключить графический интерфейс:
- Для установки нужно ввести в консоли следующую команду:
sudo apt install system-config-samba
- Вместе с этим установить все сопутствующие компоненты Самба:
sudo apt-get install -y samba samba-common python-glade2 system-config-samba
- Перейти к запуску и настройке.
Запуск
Запустить System Config Samba из терминала:
- Нажать сочетание клавиш «CTRL+ALT+T».
- В окне консоли ввести:
sudo system-config-samba
- Нажать «Enter».
- Ввести системный пароль.
Добавляем пользователей
Перед настройкой папок нужно создать пользователей:
- На верхней панели выбрать вкладку «Настройка».
- Выбрать пункт «Пользователи Samba».
- В следующем окне выбрать пункт «Добавить пользователя».
- В выпадающем списке выбрать имя пользователя, которому может быть предоставлен доступ.
- Ввести имя пользователя в Windows.
- Ввести пароль с подтверждением.
- Нажать «ОК».
Настраиваем сервер
Настройка сервера упрощается через графический интерфейс:
- Выбрать вкладку «Настройки».
- Далее «Параметры сервера».
- Вкладка «Основной», ввести название группы в поле «Рабочая группа».
- Параметр описания не влияет ни на что, поэтому его значение можно не изменять.
- Перейти к вкладке «Безопасность».
- Выбрать режим аутентификации — «Пользователь».
- Выбрать в пункте «Шифровать пароли» вариант «Да».
- Выбрать учетную запись гостя.
- Нажать «ОК».
Создаем папки
Если папки не были созданы ранее, главное окно будет пустым. Для создания нужно провести ряд действий:
- Кликнуть по кнопке в виде плюса. Произойдет переход к окну создания.
- Нажать «Обзор» в открывшемся окне.
- Указать папку, к которой будет предоставлен общий доступ.
- Отметить галочками пункты «Виден» и «Общедоступен».
- Перейти к вкладке «Доступ».
- На данной вкладке выбрать пользователей, которые получат доступ к папке.
- Для создания общедоступной папки выбрать «Предоставить доступ всем».
- Нажать на «ОК».
В главном окне отобразится созданная директория.
Файловый менеджер Nautilus
Также эти операции можно провести в популярном файловом менеджере Nautilus.
Установка
Прежде всего необходимо выполнить установку:
- Открыть «Nautilus» кликом по иконке на панели задач.
- Перейти в расположение с директорией для общего доступа. Нажать правой кнопкой мыши и выбрать пункт «Свойства».
- Перейти на вкладку «Общедоступная папка локальной сети».
- Выбрать пункт «Опубликовать эту папку».
- Откроется окно, в котором кликнуть по кнопке «Установить службу» для начала установки Самбы.
- Будет открыто окно, в котором можно просмотреть описание устанавливаемых пакетов. Нажать «Установить».
- Ввести пароль пользователя для продолжения установки.
Дождаться завершения установки и перейти к настройке.
Основные настройки
Настройка Самба из Наутилуса намного упрощается, в сравнении с предыдущими способами.
Для добавления общедоступности директории нужно:
- Перейти на вкладку «Права».
- Определить права для всех типов пользователей.
- Для ограничения доступа какой-либо группе выбрать из списка «Нет».
- Далее перейти в меню «Изменить права на вложенные файлы».
- Точно также, как и во втором пункте определить права на взаимодействие с файлами.
- Нажать «Изменить», затем перейти к вкладке «Общедоступная папка локальной сети».
- Отметить галочкой вариант «Опубликовать эту папку».
- Ввести название папки.
- Поставить, либо убрать галочки, позволяющие проводить операции и предоставлять общий доступ пользователю без учетной записи.
- Нажать «Применить».
Стоит отметить, что без настройки Самбы папки могут не стать общедоступными.
Для работы бывает необходимо подключаться из 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