Уровень сложностиПростой
Время на прочтение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 и её возможности в организации файлового хранилища с контролем доступа.
Руководство по интеграции 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, позволяя обмениваться файлами и работать совместно.
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 возникает вопрос – как создать локальную общую папку и где это лучше сделать? Чтобы было как диск D:\ в Windows.
Если мой блог помог Вам, вы можете поддержать меня любой суммой и мотивировать на написание новых заметок 🙂
Вариантов решения этой задачи несколько, и делится она на
несколько этапов.
Этап 1. Определимся, где будет размещена общая папка?
Всё зависит от исходных данных – на момент установки может быть создан отдельный раздел диска, либо мы можем использовать раздел /home – если он был выбран отдельным, либо корневой раздел, если выбора нет и всё установлено в одном разделе (не надо так).
Я обычно использую раздел /home, для которого выделяю максимальный объём оставшегося дискового пространства (до него настраиваю корень, var, tmp, swap).
Далее создаю каталог /home/docs.
Этап 2. Определяем общую группу пользователей, настраиваем права доступа.
Для организации работы нескольких пользователей в общей папке необходимо настроить разграничение прав доступа. Обычно в моей “бюджетной организации” пользователи ПК имеют равный доступ к обрабатываемой информации, поэтому я включаю их в общую группу.
В качестве общей группы использую стандартную группу user.
Важно! Эту же группу я использую в качестве первичной группы для каждого пользователя.
Установить первичную группу можно через CLI и GUI, но так как статья для
новичков, я покажу порядок действий через GUI:
Далее назначим права доступа и группу users для каталога /home/docs:
chgrp users /home/docs chmod 770 /home/docs
Но этого мало. Настроим для группы users ACL по
умолчанию:
setfacl –m d:g:users:rwx /home/docs
Важно! Убедитесь, что вывод команды getfacl совпадает с выводом на картинке.
Этап 3. Смена значения umask в системе.
Выполнив указанные пункты настройки, Вы создали каталог,
назначили ему права доступа.
Но этого тоже мало – в каталоге файлы будут создаваться с корректными правами доступа, но если пользователь скопирует что-то с другого каталога, группа users не сможет записывать в данный файл.
Вот, как это будет выглядеть через getfacl:
Для изменения поведения системы нужно изменить значение глобальной маски (umask). Я предпочитаю использовать модуль pam_umask.
Активируем модуль, добавив строку в /etc/pam.d/common-session:
Перезагрузим пользовательскую сессию (выйдем-войдём
обратно).
Теперь на рабочем столе и в других каталогах файлы создаются с нужными нам правами доступа в соответствии с маской. При копировании их в общую папку проблем не возникнет.
Хорошего всем дня и успехов в работе!
Подключению сетевого диска по 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. В окне запроса учетных данных введите логин и пароль для доступа к сетевому ресурсу.
- Имя пользователя: Укажите имя пользователя сетевого ресурса.
- Пароль: Укажите пароль от пользователя сетевого ресурса.