Источник: cnews.ru Astra Linux и Windows – 2 сильно отличающиеся операционные системы, но иногда может возникнуть необходимость интеграции этих двух систем для обмена файлами и совместной работы. В этой статье мы рассмотрим, как можно использовать Samba – инструмент, позволяющий обеспечить взаимодействие между Linux и Windows на уровне сетевых файловых систем.
Установка Astra Linux
Установка Astra Linux является первым шагом. Если вы еще не установили Astra Linux, следуйте официальным инструкциям по установке, предоставленным разработчиками.
Установка и настройка Samba в Astra Linux
Samba – это набор утилит, которые позволяют Linux и Windows обмениваться файлами и принтерами по сети. Для установки Samba на Astra Linux выполните следующую команду:
sudo apt-get install samba
После установки Samba вам нужно настроить ее для обмена файлами. Все настройки Samba хранятся в файле /etc/samba/smb.conf. Для редактирования этого файла используйте текстовый редактор nano:
sudo nano /etc/samba/smb.conf
В этом файле вы можете создать новые разделы (shares), которые будут доступны из Windows. Например, для создания общего каталога с именем «shared» выполните следующие действия:
В конец файла добавьте следующий раздел:
[shared]
path = /home/user/shared
read only = no
guest ok = yes
Создайте каталог, который вы указали в настройках (в данном случае /home/user/shared):
mkdir /home/user/shared
Перезапустите Samba, чтобы применить изменения:
sudo service smbd restart
После этих шагов каталог shared будет доступен из Windows через сеть.
Интеграция Astra Linux с Windows
Для доступа к общему каталогу из Windows откройте проводник, введите \<IP-адрес-Astra-Linux>\shared в адресную строку и нажмите Enter. Замените <IP-адрес-Astra-Linux> на IP-адрес вашего компьютера с Astra Linux.
Таким образом, с помощью Samba можно обеспечить интеграцию между Astra Linux и Windows, позволяя обмениваться файлами и работать совместно.
Linux
1 Minute
При работе в Windows средах часто необходимо подключить имеющуюся общую папку Windows в Linux сервер. Данная инструкция покажет как это сделать.
Данная инструкция подойдет не только для Astra Linux, но и для Ubuntu, Debian etc.
Подготовка
Для монтирования smb шары в Линукс необходимо установить пакет cifs-utils:apt-get install cifs-utils
После этого в системе появится команда mount.cifs (так же можно использовать просто mount с указанием типа системы -t cifs)
Пример монтирования:mount.cifs //10.10.0.1/share /mnt/fileshare -o username=tom,password=123
где: //10.10.0.1/share
— путь и имя сетевой шары/mnt/fileshare
— путь куда монтируем шару-o username=tom,password=123
— опции монтирования, в данном случае указывается имя пользователя и пароль.
Полный набор опций можно посмотреть выполнив:man mount.cifs
Наиболее часто используемые:domain=factory.local
— указание доменаvers=2.0
— указание версии протокола SMBrw\ro
— указание режим монтирования либо на чтение , либо на чтение и запись
Включение автомонтирования при загрузке
Для автомонтирования создадим systemd unit.
в каталоге /etc/systemd/system/ создадим файл mnt-fileshare.mount:nano /etc/systemd/system/mnt-fileshare.mount
при этом имя данного юнита должно отражать путь до точки монтирования. Если мы хотим монтировать в /mnt/some/file имя модулю должно быть mnt-some-file.mount
Вставим в данный файл следующий текст:[Unit]
Description=Cifs mount
Requires=network-online.target
After=network-online.service
[Mount]
What=//10.10.0.1/share
Where=/mnt/fileshare
Options=username=tom,password=123
Type=cifs
[Install]
WantedBy=multi-user.target
обновляем конфигурацию systemdsystemctl daemon-reload
выполняем монтирование:systemctl start mnt-fileshare.mount
Проверяем:ls /mnt/fileshare
должны увидеть содержимое диска.
Включаем монтирование при загрузке:systemctl enable mnt-fileshare.mount
В данной инструкции имя пользователя и пароль передается в качестве опции в открытом виде, что не безопасно. Для cifs предусмотрена возможность вынести данные реквизиты в отдельный файл с ограниченным доступом.
пример:
создаем файл:nano /root/.smbcred
заполняем файл реквизитами доступа:username=tom
password=123
вносим изменения в systemd unit mnt-fileshare.mount
:[Unit]
Description=Cifs mount
Requires=network-online.target
After=network-online.service
[Mount]
What=//10.10.0.1/share
Where=/mnt/fileshare
Options=credentials=/root/.smbcred
Type=cifs
[Install]
WantedBy=multi-user.target
обновляем конфигцрацию systemdsystemctl daemon-reload
монтируем директорию:systemctll start mnt-fileshare.mount
Полезные ссылки:
https://www.freedesktop.org/software/systemd/man/systemd.mount.html
https://linux.die.net/man/8/mount.cifs
Опубликовано
Должен стоять SAMBA клиент. Смотря какой Windows (точнее версия SMB)
Можно узнать версию SMB в windows, если подключиться к шаре, запустить powershell от администратора, get-smbconnection покажет версию в колонке Dialect.
В linux подключить win шару:
1) не win 10 sudo mount.cifs ///<расшареннаяпапка> -o user=username /media
2) win 10 sudo mount.cifs /// -o user=username,vers=3.0 /media
(win 10 имею ввиду SMB=3, в других win тоже может быть отключен SMB 1)
А если вбить адрес вручную в программе обзора папокsmb://192.168.0.140/share/
Автоматический поиск компьютеров и их ресурсов не всегда хорошо работает.
Пакет samba (с поддержкой MIT Kerberos) входит в стандартные дистрибутивы Astra Linux, но по умолчанию не устанавливается.
Дополнительно, в стандартный дистрибутив входит графический инструмент для настройки samba
— fly-admin-samba
.
Вариант samba с поддержкой Heimdal Kerberos доступен по ссылке.
Быстрая установка
Установку можно сделать из Графический менеджер пакетов synaptic, или из командной строки.
Можно сразу установить графический инструмент администрирования fly-admin-samba
, пакет samba
при этом установится автоматически:
sudo apt install fly-admin-samba
После установки графического инструмента он станет доступен в меню «Пуск» > «Панель управления» > «Сеть» > «Общие папки (Samba)»
Быстрая настройка и запуск
Для быстрой настройки сервиса запустите графический инструмент:
«Пуск» > «Панель управления» > «Сеть» > «Общие папки (Samba)»
С помощью графического инструмента возможно выполнение большинства действий по администрированию разделяемых ресурсов сервиса samba
:
- Задание имени рабочей группы;
- Запуск/остановка сервиса;
- Определение разделяемых ресурсов;
- Определение списка пользователей;
- Настройка аутентификации пользователей через Kerberos;
Настройка анонимного разделяемого каталога
Приведенные ниже настройки предоставляют полный доступ как на чтение, так и на запись ко всем файловым объектам каталога всем пользователям без аутентификации.
Для создания разделяемого ресурса, доступного без аутентификации:
-
Создать разделяемый каталог, к которому будет предоставлен полный доступ (например, каталог /srv/share):
sudo mkdir /srv/share
-
Установить на созданный каталог права доступа 0775 и сделать владельцем пользователя nobody («никто») и группу nogroup («никакая»):
sudo chown nobody:nogroup /srv/share
sudo chmod 775 /srv/share -
В конфигурационный файл /etc/samba/smb.conf внести следующие исправления:
-
Убедиться, что в секции [global] присутствует параметр map to guest, имеющий значение Bad User, в случае отсутствия — добавить его в секцию:
Параметр разрешает работу пользователей, не прошедших аутентификацию, в том числе работу с анонимными разделяемым ресурсами;
-
Добавить секцию вида:
[share] comment = <Произвольный комментарий> guest ok = yes force user = nobody force group = nogroup path = /srv/share read only = no
Параметры force user и force group принудительно обеспечивают для всех подключений к ресурсу подключение от имени nobody («никто») и группы nogroup («никакая»), что ограничивает возможность несанкционированных действий, однако применение этих параметров имеет нежелательный побочный эффект: все файловые объекты, создаваемые на ресурсе имеют владельца
Для запрета изменения файловых ресурсов параметр read only привести к виду:
-
-
Проверить корректность конфигурационного файла:
testparm
-
Перезапустить службу samba, чтобы изменения вступили в силу:
sudo systemctl restart smbd
.
Тонкая настройка
Основной файл настройки сервиса samba
— /etc/samba/smb.conf — содержит значительное количество комментариев по проведению настройки.
После изменения имени рабочей группы в файле /etc/samba/smb.conf
для того, чтобы изменения немедленно стали доступны другим машинам
нужно перезапустить не только сервис samba (smbd), но и сервис nmbd, обслуживающий запросы имён netbios:
sudo systemctl restart smbd
-
Для того, чтобы проверить разделяемые ресурсы samba, доступные в сети, можно использовать команду
smbtree
Эта команда выводит дерево рабочих групп, и принадлежащих им ресурсов (файлов, принтеров и пр.) всех серверов samba, доступных в сети.
- Для работы с конкретным ресурсом можно использовать команду smbclient:
-
Список ресурсов конкретного сервера с именем hostname:
smbclient -L hostname
-
Анонимная работа с разделяемым ресурсом share предоставляемым сервером hostname:
smbclient -N \\\\hostname\\share
После запуска команды в интерактивном режиме доступны команды для просмотра содержимого разделяемых каталогов, создания и удаления поддиректорий и пр. Полный список команд доступен по команде help
-
Настройка клиентов
Простой доступ к ресурсам
Для доступа к ресурсам следует использовать пункт «Сеть» — «Создать сетевое место» в верхнем меню файлового менеджера, в открывшейся форме ввода указать имя сервиса, и его адрес.
Примеры форматов задания адресов имеются непосредственно в форме ввода.
Монтирование ресурсов
Для монтирования ресурсов на клиентские машины следует установить пакет cifs-utils, который входит в дистрибутивы, но по умолчанию не устанавливается:
sudo apt install cifs-utils
После установки пакета монтирование ресурсов будет доступно командой , например:
sudo mount -t cifs //10.0.10.201/share /mnt -o users,sec=none
Где:
- //10.0.10.201/share — ресурс «share» на сервере 10.0.10.201
- /mnt — точка монтирования
Автоматическое монтирование ресурсов
Для того, чтобы сетевой ресурс монтировался при загрузке системы, необходимо в конфигурационный файл /etc/fstab добавить строчку вида:
//10.0.10.201/share /mnt cifs credentials=/root/.smbclient,rw,nosharesock,vers=1.0,soft,noperm 0 0
Комментарий по используемым и возможным опциям:
Опция | Комментарий |
---|---|
noauto | Запретить автоматическое монтирование ресурса (при загрузке или по команде mount -a). |
credentials= |
Имя файла, содержащего логин и пароль samba для автоматического монтирования. Формат файла: username=samba_user_name Параметр domain можно не указывать, если доменное имя не используется. Логин и пароль можно указать непосредственно в файле /etc/fstab (опции username= и password=), однако, |
noperm |
Клиент не выполняет проверку прав доступа. Это позволяет предоставить доступ к файловым объектам этой точки монтирования другим локальным пользователям клиентской системы. |
nosharesock | Принудительное создание на сервере нового отдельного сокета (позволяет создать несколько независимых точек монтирования для разных пользователей). |
rw | Разрешение на чтение и на запись. |
ro | Разрешение только на запись. |
soft | При отказе сервера программы, работающие с примонтированными ресурсами, не зависают, а возвращают ошибку. Это режим по умолчанию. |
user | Разрешение монтировать от имени непривилегированного пользователя. |
vers= | Выбор версии протокола SMB. По умолчанию используется версия 1.0. |
Автоматическое монтирование ресурсов по запросу
Выполняется с помощью пакета autofs
Содержание
- Как предоставить общий доступ из Windows к сетевой папке на Linux по логину и паролю?
- Множественное подключение к серверу или разделяемым ресурсам одним пользователем с использованием более одного имени пользователя не разрешено — как исправить ошибку (samba)?
- Как предоставить анонимный доступ к общей сетевой папке samba линукс из сети Windows?
- Как отключить ввод пароля для разблокирования связки ключей «Основная» при подключении сетевой папки?
- Как увидеть и подключить общую сетевую папку Windows в Линукс Астра?
- Как настроить автоматические монтирование сетевой папки в Астра Линукс?
Друзья, доброго времени! Создание сетевых ресурсов и организация общего доступа к ним — рутинный навык системных администраторов. Сегодня будем учиться делать это в линукс астра.
Процесc сильно отличается от того, что мы видим в обычно в Windows и новичкам порой нелегко быстро разобраться. Но результат — безопасная и ясная настройка доступа. Приступим к изучению samba — файлового сервера.
Тонкости SAMBA обязательно нужно знать и начнем с общих папок. Предлагаю начать с создания настроек samba с нуля . В дальнейшем легче будет постигать более сложные настройки которые предоставляют разработчики. Итак..
Как предоставить общий доступ из Windows к сетевой папке на Linux по логину и паролю?
Установили Линукс в качестве сервера и хотели привычно открыть доступ к его сетевым папкам для компьютеров сети Windows. А в папку не попасть?
Давайте разбираться. Для начала текущий конфигурационный файл с настройками скопируем куда нибудь в другое место (еще пригодится),а вместо него создадим пустой и настроим его нуля самостоятельно.
Вызовем терминал (Alt+t). Запустим Midnight Commander с наивысшими правами:
sudo mc
..найдем файл smb.conf в папке /etc/samba/smb.conf и переместим его в другую папку, например в /tls того же каталога:
Вместо него создадим его пустой аналог c помощью команды «touch»:
sudo touch /etc/samba/smb.conf
Чуть позже начнем наполнять его настройками; сейчас сначала добавим пользователей файлового сервера samba. В нашем примере имя пользователя самба должно совпадать с именем учетной записи пользователя Линукс. А пароль не должен совпадать с паролем учетной записи. Добавим:
sudo smbpasswd -a superuser
Чтобы удалить пароль, введите:
sudo smbpasswd -n superuser
Активируем созданного пользователя samba:
smbpasswd -e superuser
- где superuser имя пользователя samba.
Теперь займемся непосредственно созданием сетевой папки. Задача — создать доступный администратору ресурс по логину и паролю, в который можно попасть с любого компьютера . Создадим папку soft:
sudo mkdir /media/soft
Обязательно сменим владельца и группу (папка создана в корневой файловой системе) на superuser:
sudo chown superuser:superuser /media/soft
Предоставим полные права созданной папке ее новому хозяину:
sudochmod 777 /media/soft
Далее, начнем заполнять наш конфигурационный файл в текстовом редакторе; откроем его программой kate (с наивысшими правами):
sudo kate /etc/samba/smb.conf
В файл конфигурации необходимо корректно вносить информацию, соблюдая пробелы:
Конфигурационный файл принято разбивать на секции. Каждая секция начинается с квадратных скобок. Глобальная секция содержит настройки касающиеся режимов работы файлового сервера. И влияет на все что ниже. Имя нашего общего ресурса — это следующая секция и т.д. Для нашей задачи настройки будут такими:
[global] workgroup = office
server string = server Астра Линукс 2,12 Орел
interfaces = 127.0.0.0/8, 192.168.1.2/24, 192.168.1.3/24
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
panic action = /usr/share/samba/panic-action %d
security = user
usershare allow guests = yes
# Сетевая папка для админа
[soft] comment = пользовательский прикладной софт
path = /media/soft
create mask = 0775
directory mask = 0775
read only = no
browseable = yes
guest only = no
public = yes
valid users = admin, superuser
writeable = yes
Дополнительно в свойствах созданной папки можно менять «дискреционные атрибуты» на просмотр, запись и исполнение и смотреть потом, как это влияет на доступ:
Сохраняем содержимое; теперь нужно перезапустить сервисы samba, чтобы изменения вступили в силу:
sudo service smbd restart sudo service nmbd restart
Множественное подключение к серверу или разделяемым ресурсам одним пользователем с использованием более одного имени пользователя не разрешено — как исправить ошибку (samba)?
При попытке зайти в папку по сети с другого компьютера возникает эта ошибка. Чтобы ее обойти нужно создать на компьютере с Линукс астра нового пользователя системы , например:
sudo adduser admin
Можно добавить нового пользователя Линукс Астра и через «панель управления», там нагляднее:
Далее создать нового пользователя сервера samba под тем же именем:
sudo smbpasswd -a admih
Включить (активировать) его:
sudo smbpasswd -e admih
В конфигурационном файле smb.conf подправить параметр «valid users = superuser, admin«, рестарт служб самбы. Далее, проверяем настройки файла hosts на сервере..:
sudo kate /etc/hosts
… прописsdftv туда имя компьютера (хоста) на соответствие локальному хосту или назначенный ему локальный IP адрес:
После редактирования hosts машину перезагружаем. Для того, чтобы подробно ознакомиться с параметрами сервера samba, которые мы задали в файле читаем эту статью,
В компьютере с Windows вбиваем в проводник имя компьютера \\homeastra\soft , вводим имя пользователя и пароль. Можно для автоматического подключения при загрузке подключить нашу папку в качестве сетевого диска:
Если из Windows не удается настроить подключение из за непонятных глюков чистим сетевой кеш в windows, так, как это рассказано здесь.
Как предоставить анонимный доступ к общей сетевой папке samba линукс из сети Windows?
В предыдущем примере предоставили доступ к сетевой папке по логину и паролю. Но для обмена файлами пользователи часто используют общую гостевую папку, доступ по паролю в нее необязателен.
Сначала создадим гостевую папку для общего доступа:
mkdir /media/gostevaya
Выясним ее реальное расположение. Обратите внимание — наша общая папка опять создана не в домашнем каталоге пользователя, а в файловой системе, это важно:
realpath gostevaya
Нужно изменить владельца папки на nobody и назначить соответствующую группу nogroup. По умолчанию самба воспринимает эти имена как гостевые. Один из способов команда chown:
sudo chown nobody:nogroup /media/gostevaya
и командой chmod предоставим полные права на содержимое :
sudo chmod 777 /media/gostevaya
Теперь в настройках файла smb.conf создаем еще одну секцию [gostevaya] со следующими параметрами..:
global] workgroup = office
server string = server ????? ?????? 2,12 ????
netbios aliases = s800 s801 s802 s803
interfaces = 127.0.0.0/8, 192.168.1.4/24, 192.168.1.5./24
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
panic action = /usr/share/samba/panic-action %d
security = user
usershare allow guests = yes
[gostevaya] comment = публичная папка
path = /media/gostevaya
read only = no
guest ok = yes
browseable = yes
[soft] comment = папка с софтом
path = /media/soft
create mask = 0775
directory mask = 0775
read only = no
browseable = yes
guest only = no
public = yes
valid users = admin,superuser
writeable = yes
В этом рабочем файле конфигурации перечислил параметры, значения которых можно менять и смотреть как это влияет на доступ. После чего сохраняем изменения и перезапускаем службы. samba как было показано выше. На блоге позже планирую опубликовать полное описание параметров и настроек из man.
Как отключить ввод пароля для разблокирования связки ключей «Основная» при подключении сетевой папки?
При взаимодействии с сетью Windows (а так же при запуске приложений Skype и других) Astra Linux каждый раз будет требовать ввода пароля для проверки легальности запуска того или иного потенциально опасного приложения. В качестве такой проверки нужно каждый раз вводить пароль.
Есть возможность отключить эту функцию, или сделать ее использование более удобным. Для этого потребуется пакет «Морская лошадь». Установим его:
sudo apt install seahorse
Запуск — команда из терминала
seahorse
Теперь можно проверять доступ к папке из Windows; даже если система спросит пароль — ничего не вводите, должна пустить.
Как увидеть и подключить общую сетевую папку Windows в Линукс Астра?
Если samba установлен, то можно вывести список ВСЕХ общих папок командой в терминале:
sudo smbtree -N
либо СПИСОК открытых ресурсов на какой либо конкретной станции в сети:
sudo smbclient -L \\homeastra -n (если вход без пароля)
sudo smbclient -L \\homeastra -u username (если вход по паролю)
В графическом режиме через файловый менеджер можно найти нужную станцию и посмотреть ее общие ресурсы. Если настройки сетевого доступа по паролю — нужно ввести имя и пароль:
После перезагрузки нужно будет опять вводить пароль. Чтобы сетевая папка автоматически подключалась при загрузке нужно ее примонтировать особым образом.
Как настроить автоматические монтирование сетевой папки в Астра Линукс?
sudo mount -t cifs -o username=Иван,password=123,uid=1000,iocharset=utf8 //192.168.1.22/Сетевая папка /media/22
- где sudo mount команда на монтирование;
- -t cifs команада монтирования файловой системы (пакет cifs установлен по умолчанию в Астра Линукс);
- -o включаем доп.опции монтирования;
- username, password имя пользователя и его пароль (владелец папки);
- uid 1000 — опция делает владельцем папки текущего пользователя линукс;
- указание кодировки iocharset=utf8 помогает «понимать» русские символы в имени файлов и папок;
- //192.168.1.22 адрес компьютера в сети или его имя;
- /media/22 точка монтирования, в конечной папке «22»
Чтобы избежать ошибки BAD UNC при монтировании, перед IP адресом или именем компьютера обязательно должна быть двойная косая черта!
Далее, надо сделать автоматическое монтирование сетевой папки при загрузке . Для этого размонтируем пока нашу шару:
sudo umount /media/mar
И внесем изменения в файл /etc/fstab. Данные пользователей и пароли принято прятать. Файл fstab может открыть посторонний и легко получить пароли других компьютеров. Нужно создать текстовый файл samba22
sudo kate /samba22
и записать туда имя пользователя компьютера и его пароль в следующем виде, сохранить файл:
username=Иван password=123
Узнаем путь до файла:
realpath samba22
В моем примере файл находится в папке home/superuser/samba22
Изменим права на файл samba22, чтобы другие пользователи не могли его просматривать и изменять:
sudo chmod 600 /home/superuser/samba22
теперь можно безопасно использовать содержимое нашего файла samba22 в команде следующего вида:
//192.168.1.22/Сетевая папка /media/22 cifs credentials=/home/superuser/samba22,uid=1000,iocharset=utf8,nofail 0 0
Откроем на редактирование файл /etc/fstab
sudo kate /etc/fstab
И вставим нашу строку в этот файл. После внесенных изменений выполним команду:
sudo mount -a
Если содержимое сетевой папки появилось в точке монтирования, оно теперь будет появляться и после каждой перезагрузки, конечно если нужный компьютер включен. Теперь вы знаете как это делать и через терминал.
Вот и все на сегодня. В одной небольшой статье не охватить все тонкости настроек общих принтеров и папок. Для справки планирую перевод документации по samba в нескольких статьях на блоге! Удачи!