Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров12K
Всем привет я всегда хотел вести свой мини блог и решил начать его на Хабре. Я очень вдохновлен этой платформой, потому что я могу её использовать, как для развития самого себя, так и помогать начинающим специалистам в области IT совершенствовать свои навыки. На данном этапе я не могу писать какие-то сверхсложные статьи в данной области, но я постепенно развиваюсь и буду освещать необычные темы в своей блоге. А пока решил начать с чего-то очень простого чтобы самому въехать, и понять как все будет развиваться.
Samba — это программный комплекс, который позволяет компьютерам на базе Linux и UNIX взаимодействовать с системами Windows через протокол SMB/CIFS (Server Message Block/Common Internet File System). Основное
Основное предназначение Samba — обеспечить совместный доступ к файлам, папкам, принтерам и другим ресурсам между разными операционными системами.
Нам необходимо представить доступ к общей папке и к папке «приватных пользователей» на базе astra linux 1.6. Для этого мы создадим 2 общие папки, к которым в целях безопасности смогут подключаться только пользователи Samba, вторая же папка будет «приватная» к которой смогу подключатся только пользователи Samba, но главное отличие в том, что эти пользователи дополнительно будут аутентифицироваться по паролю. Так же если вам необходимо что бы присутствовал пользователь с правами администратора и имел доступ ко всем папкам то выполняйте команды со звездочкой*
«Samba_users» — где доступ имеют только пользователи Samba без пароля
«Samba_private» — где привилегированные пользователи Samba имеют доступ по паролю.
1. Настройка сети
Для начала назначим статические IP-адреса для сервера и клиентских хостов
-
Сервер Samba —
192.168.1.200/24
(Astra Linux 1.6/1.7) -
Хост №1 (Windows 7) —
192.168.1.10, уч. запись vadim
-
Хост №2 (Windows 10) —
192.168.1.11, уч. запись dima
-
*Хост №3 (Windows 10) —
192.168.1.12, уч. запись admin
2. Настройка доменного имени
Присваиваем серверу корректное доменное имя, например: ds1.domain.local
. Выполняем команды:
sudo -i
hostnamectl set-hostname ds1.domain.local
hostname // проверить заданное имя
mcedit /etc/hosts // привести к виду
127.0.0.1 localhost
#127.0.0.1 ds
192.168.1.200 ds1.domain.local ds1
cat /etc/resolv.conf //проверить что бы были указаны правильные DNS сервераПроверяем наличие сетевого взаимодействия
ping (ip - хоста в сети)
3. Установка Samba
Установите Samba на сервере
Fly-admin-samba — Это специальный инструмент, разработанный для Astra Linux. Его основное назначение — упрощение администрирования Samba через
графический интерфейс.
Astra-samba — Это модифицированная версия Samba, интегрированная специально для Astra Linux. Она включает в себя некоторые изменения, специфичные для ОС Astra Linux 1.6— упрощение администрирования Samba через графический интерфейс. Astra-samba — Это модифицированная версия Samba, интегрированная специально для Astra Linux. Она включает в себя некоторые изменения, специфичные для ОС Astra Linux 1.6 хотя fly-admin-samba и astra-samba разработаны для Astra Linux, их использование зависит от вашего сценария:
-
Если вы работаете через графический интерфейс, fly-admin-samba может быть полезным.
-
Если вы хотите использовать полную функциональность Samba и её расширения, то astra-samba будет предпочтительнее.
-
В некоторых случаях может потребоваться ручная настройка через консоль (например, тонкая настройка прав, которая может быть недоступна через GUI).
После установки графического инструмента он станет доступен в меню
«Пуск» > «Панель управления» > «Сеть» > «Общие папки (Samba)«
sudo apt install fly-admin-samba //Установить графический инструмент
apt install astra-sambadc// Установить инструмент командной строки
4. Проверьте, что Samba установлена и работает
sudo systemctl status smbd
sudo systemctl enable smbd //Включить автозапуск службы с ОС
5. Необходимо произвести настройки в конфигурационном файле smb.conf
sudo -i
cp -v /etc/samba/smb.conf /var/backups
systemctl stop smbd
mcedit (nano) /etc/samba/smb.conf
Приводим файл к такому виду, остальное содержание можно оставить без изменений или удалить, но вскоре вам понадобится прописать в этом файле сетевые принтеры или что-то ещё, поэтому в контексте данного задания я показываю часть файла, которая отвечает на заданную нами тему.
[global]
log file = /var/log/samba/%m.log
max log size = 1000
workgroup = WORKGROUP
netbios name = SAMBASERVER
wins support = yes
logging = file
panic action = /usr/share/samba/panic-action %d
server role = standalone server
obey pam restriction = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = Enter\snew\s\spasswdord:* %n\n Retype\snew\s\spasswdord:* %n\n password\supdated\ssuccessfully
pam password change = yes
map to guest = bad user
security = user
comment = Home Directories
encrypt passwords = yes
[samba_users]
comment = Общая папка для пользователей Samba
path = /srv/samba_users
read only = no
guest ok = yes
browseable = yes
writable = yes
valid users = @samba_users, @admin //*добавляем @admin если нужен admin над всеми папками
[samba_private]
comment = Приватная папка
path = /srv/samba_private
browseable = yes
guest ok = no
writable = yes
valid users = @samba_private, @admin
Сохранение в редакторе mcedit/nano
mcedit — Выйти и сохранить — F10
nano — ctrl+X
Обозначение команд в конфигурационном файле
comment = Общая папка Samba
• Описание: Указывает описание ресурса, которое будет отображаться в сетевом окружении.
path = /srv/samba
• Описание: Указывает путь к каталогу на сервере, который предоставляется в общем доступе.
• Пример: Файлы, хранящиеся в /srv/samba, будут видны через этот ресурс.
read only = no
• Описание: Определяет, доступен ли ресурс только для чтения.
• no: Разрешает запись в папку.
guest ok = yes
• Описание: Разрешает доступ к папке без аутентификации (гостевой доступ).
• yes: Любой пользователь может получить доступ к ресурсу без ввода логина и пароля.
browseable = yes
• Описание: Показывать ли папку в сетевом окружении.
• yes: Папка будет видна в списке общих ресурсов.
writable = yes
• Описание: Разрешать ли запись в папку.
• yes: Пользователи смогут добавлять и изменять файлы.
valid users = @samba_private
• Описание: Ограничивает доступ к папке только для указанных пользователей или групп.
• @samba_private: Указывает, что доступ имеют только пользователи из группы samba_private.
• Пример: Если пользователь не принадлежит к этой группе, доступ будет запрещён.
6. Проверка конфигурации на ошибки
testparm
7. Создадим группы пользователей
groupadd samba_users
groupadd samba_private
groupadd admin //*
groupadd samba_del
groupdel samba_del//удалите если добавили лишнюю группу
8. Добавим пользователей Linux и создадим учетные записи Samba
adduser vadim //пароль задаем такие же как у учеток windows
adduser dima
adduser admin //*пользователь, имеющий права ко всем папкам
adduser kiril
smbpasswd -a vadim
smbpasswd -a dima
smbpasswd -a admin
userdel kiril // если случайно дабавили пользователя
9. Добавим пользователей в группы
usermod -aG samba_users dima
usermod -aG samba_private vadim
usermod -aG admin admin//*добавление пользователя админ в группу
gpasswd --delete <пользователь> <группы через запятую> // если необходимо удалить пользователя из группы
10. Создаем папку samba_users с общим доступом для пользователей Samba
sudo -i
mkdir /srv/samba_users (папка с общим доступом где только пользователи Samba могут и читать и записывать)
chmod -R 770 /srv/samba_users
chown -R root:samba_users /srv/samba_users
10.1 Расширение прав и отладка
Практика показала, что пользователи имеют доступ к папкам и все работает отлично.
В моей ситуации получилось так, что данные я переносил с компьютера windows и все файлы получили права admin в группе admin, в связи с чем пользователи не могли получить доступ к файлам внутри расшаренных папок.
Потому если вы столкнулись с данной проблемой или вам необходим доступ как пользователя так и администратора тоже, то это должно вам помочь:
Настройка прав с помощью ACL
Теперь вам необходимо назначить права одновременно для обеих групп.
Добавьте права для группы admin:
sudo setfacl -R -m g:admin:rwx /srv/samba_users
sudo setfacl -R -m g:samba_users:rwx /srv/samba_users
Настраиваем так, что бы новые файлы и папки наследовали права:
sudo setfacl -R -d -m g:admin:rwx /srv/samba_users
sudo setfacl -R -d -m g:samba_users:rwx /srv/samba_users
Проверка текущих ACL
Проверьте, что права настроены правильно:
getfacl /srv/samba_users
Вы должны увидеть что-то вроде:
makefile
# file: /srv/samba_users
# owner: root
# group: samba_users
user::rwx
group::rwx
group:admin:rwx
group:samba_users:rwx
mask::rwx
other::r-x
Аналогично для папки samba_private
sudo -i
mkdir /srv/samba_private (папка с доступом для пользователей Samba по паролю)
chmod -R 770 /srv/samba_private
chown -R root:samba_private /srv/samba_private
Настройка прав с помощью ACL
Теперь вам необходимо назначить права одновременно для обеих групп.
Добавьте права для группы admin:
sudo setfacl -R -m g:admin:rwx /srv/samba_private
sudo setfacl -R -m g:samba_private:rwx /srv/samba_private
Настраиваем так, что бы новые файлы и папки наследовали права:
sudo setfacl -R -d -m g:admin:rwx /srv/samba_private
sudo setfacl -R -d -m g:samba_private:rwx /srv/samba_private
Проверка текущих ACL
Проверьте, что права настроены правильно:
getfacl /srv/samba_private
Вы должны увидеть что-то вроде:
makefile
# file: /srv/samba_private
# owner: root
# group: samba_private
user::rwx
group::rwx
group:admin:rwx
group:samba_private:rwx
mask::rwx
other::r-x
11. Проверка работы службы
Необходимо перезапустить службу Samba и проверить с сервера доступ к конкретной папке
systemctl restart smbd// перезапуск службы
systemctl status smbd //Проверка работы службы
smbclient //localhost/samba_users -U dima
smbclient //localhost/samba_private -U vadim
12. Подключение к общим папкам с хостов Windows
В проводнике отобразится общая папка после чего вы можете создать ярлык этой папки и вынести на рабочий стол для удобства.
Когда вы проверите доступ к папкам с разных компьютеров, то убедитесь что Vadim имеет доступ к 2-м папкам, а dima только к одной (samba_users). При подключении vadim к samba_private, будет затребован пароль для аутентификации, после его ввода он сохраниться и вы будете заходить без дополнительного ввода (Есть смысл делать пароли от учетных записей Windows и Astra Linux одинаковыми).
Вывод
В результате выполнения данной настройки сервера Samba были успешно созданы и настроены общие ресурсы с различными уровнями доступа. Настроены две папки:
-
samba_users — доступна всем пользователям Samba без ввода пароля,
-
samba_private — доступна только определённым пользователям после аутентификации.
Проверка с сервера и клиентских хостов (Windows 7 и Windows 10) подтвердила корректную работу настроек, включая разграничение доступа. Такой подход обеспечивает удобство управления доступом для различных пользователей, а использование групп позволяет гибко управлять правами в будущем. Данный алгоритм демонстрирует простоту настройки Samba и её возможности в организации файлового хранилища с контролем доступа.
Linux
1 Minutes
При работе в 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
Опубликовано
Руководство по интеграции Astra Linux и Windows с использованием Samba для обмена файлами и совместной работы.
Источник: 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, позволяя обмениваться файлами и работать совместно.
Подключению сетевого диска по SMB протоколу с помощью GUI проводника для ОС RedOS 7.3, Astra Linux 1.7.5 и Rosa Chrome 12.4.
RedOS 7.3 (Caja 1.26.0)
1. Перейдите в проводник и выберите «Файл» – «Соединиться с сервером».
2. В открывшемся окне заполните информацию:
- Адрес сервера: адрес сетевого ресурса
- Тип: Ресурс Windows
- Папка: Имя подключаемого сетевого каталога
- Имя домена: Адрес подключаемого домена (ip-адрес или домен)
- Имя пользователя: Имя пользователя домена
- Пароль: Пароль пользователя домена.
После заполнения нажмите Подключиться.
Astra Linux 1.7.5 (fly 1.7.130)
1. Перейдите в проводник и выберите «Сеть» — «Создать сетевое место»
2. В окне введите название папки и адрес сетевого каталога и нажмите «Да»
- Название: Укажите желаемое название сетевого каталога.
- Адрес: Укажите адрес сетевого ресурса, с указанием протокола данного ресурса
3. При запросе учетных данных введите логин и пароль от сетевого ресурса и нажмите «Да»
- Пользователь: Укажите имя пользователя сетевого ресурса.
- Пароль: Укажите пароль от пользователя сетевого ресурса.
Rosa Chrome 12.4 (Dolphin 23.03.90)
1. Перейдите в диспетчер файлов и в разделе «Сеть» выберите «Добавить сетевую папку»
2. В открывшемся окне выберите «Сетевой диск Microsoft Windows» и нажмите «Далее»
3. Введите имя, адрес сетевого ресурса и название сетевого каталога, нажмите «Сохранить и подключиться».
- Имя: Укажите желаемое имя каталога, как он будет отображаться в вашем проводнике.
- Сервер: Укажите имя сервера с сетевым ресурсом (ip-адрес или имя домена).
- Папка: Укажите имя подключаемого каталога.
4. В окне запроса учетных данных введите логин и пароль для доступа к сетевому ресурсу.
- Имя пользователя: Укажите имя пользователя сетевого ресурса.
- Пароль: Укажите пароль от пользователя сетевого ресурса.
Уже несколько лет я проверяю разные версии Астра Линукс и все это время у них «из коробки» не работает локальная сеть. То есть из Астры нельзя получить доступ к расшаренным папкам на компьютерах Windows. А из Windows нельзя получить доступ к файлам на компьютере с Астрой.
Для одиночного компьютера это не имеет значения, главное чтобы Интернет работал. Но Астру активно впаривают государственным организациям и учреждениям, а там без локальной сети никак нельзя. И почему разработчики дистрибутива до сих пор не решили эту проблему, я не знаю.
Итак. Что нужно сделать, чтобы в Астре можно было пользоваться локальной сетью. Я буду описывать действия для самого распространенного варианта построения локальной сети. В сети есть компьютеры с Windows. На этих Windows разрешен доступ к файлам без логина и пароля (анонимный доступ). Все компьютеры соединены друг с другом через один общий роутер (одноранговая сеть).
Доступ к файлам на компьютерах Windows
Начинаем с простого — доступ к файлам на компьютерах Windows. Сразу после установки, «из коробки», Астра (в своем псевдо Проводнике) показывает компьютеры Windows, заходит на них, показывает сетевые папки, но эти папки пустые, там словно бы ничего нет.
Чтобы это исправить придется использовать Терминал. Открываем его и там одну, за другой несколько команд вводим:
mkdir ~/.smb
sudo ln -s /etc/samba/smb.conf ~/.smb/smb.conf
echo ‘auth «guest» none’ > ~/.smb/smbnetfs.conf
chmod 600 ~/.smb/smbnetfs.conf
После этого можно запускать псевдо Проводник и пользоваться файлами на компьютерах Windows. Если псевдо Проводник, опять будет показывать пустые папки, тогда нужно завершить сеанс пользователя и заново авторизоваться.
Раздача файлов из Astra Linux
Немного сложнее настроить раздачу файлов из Астры.
Сначала нужно установить пакет samba. Это программный сервер, который обеспечивает «отдачу» файлов и принтеров в локальную сеть, по протоколу SMB (который использует Windows). «Из коробки» она не устанавливается. Установить можно двумя способами:
Через терминал:
sudo apt install samba
Или через программу Synaptic, которая доступна через меню. В программе нужно найти пакет samba (через поиск по имени) и установить его.
После установки пакета, нужно убедиться что сервисы Самбы запустились и работают. Это можно сделать через терминал:
sudo service smbd status
sudo service nmbd status
Оба сервиса должны работать. Если не запущены, значит запустить:
sudo service smbd start
sudo service nmbd start
После этого можно определять папки, для сетевого доступа. В базе знаний на официальном сайте Астры Линукс, описан пример с раздачей папки в системном каталоге srv, да еще и с присвоением этой папке владельца Nobody. Как по мне, это тупняк какой-то. Во-первых это будет неудобно для работы. Пользователю придется в эту папку перекидывать необходимые файлы из своих «домашних» папок (Документы, Изображения, Загрузки Рабочий стол). Во-вторых, если с другого компьютера (через сеть) в этой папке кто-то создаст файл или папку, то локальный пользователь Астры не сможет с ними работать, потому что права будут установлены в пользователя Nobody.
Поэтому делаем по умному. Раздача в сеть одной или нескольких «домашних» папок. Я в качестве примера напишу про папку Загрузки. Полный путь к этой папке — /home/astra/Загрузки, где astra это логин локального пользователя. Если у вас логин будет, например oleg, то путь будет другой — /home/oleg/Загрузки. Путь к раздаваемой папке, понадобится для настройки.
Открываем программу Kate (это текстовый редактор). В этом редакторе открываем файл /etc/samba/smb.conf. Переходим в самый конец файла и там добавляем вот такой фрагмент:
[Загрузки]
path = /home/astra/Загрузки
guest ok = yes
force user = astra
force group = astra
read only = no
create mask = 0777
directory mask = 0777
[Загрузки] — это сетевое имя раздаваемой папки. Под этим именем папка будет видна с других компьютеров.
path = /home/astra/Загрузки — это путь к раздаваемой папке. Если вы будете раздавать папку, в имени которой есть пробел, тогда путь нужно будет в кавычках записать.
force user = astra — здесть нужно записать логин локального пользователя Астры.
force group = astra — повторить логин.
Сохраняем файл. Редактор запросит пароль для sudo (пароль администратора). После ввода пароля файл будет сохранен.
Проверяем правильность файла:
testparm
Если с файлом все в порядке, далее нужно установить права, на раздаваемую папку:
chmod 775 /home/astra/Загрузки
После этого нужно сделать рестарт Самбы:
sudo service smbd restart
Можно пользоваться файлами в этой папке, через локальную сеть, с других компьютеров.
Другие статьи про Astra Linux
Обзор Astra Linux 2.12.46
Установка Astra SE 1.8