Как стать автором
Обновить

Настройка общей папки с использованием Astra Linux 1.6/1.7 для хостов с ОС Windows

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров11K

Всем привет я всегда хотел вести свой мини блог и решил начать его на Хабре. Я очень вдохновлен этой платформой, потому что я могу её использовать, как для развития самого себя, так и помогать начинающим специалистам в области 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

Вводим IP-адрес сервера Samba
Вводим IP-адрес сервера Samba

В проводнике отобразится общая папка после чего вы можете создать ярлык этой папки и вынести на рабочий стол для удобства.

Когда вы проверите доступ к папкам с разных компьютеров, то убедитесь что Vadim имеет доступ к 2-м папкам, а dima только к одной (samba_users). При подключении vadim к samba_private, будет затребован пароль для аутентификации, после его ввода он сохраниться и вы будете заходить без дополнительного ввода (Есть смысл делать пароли от учетных записей Windows и Astra Linux одинаковыми).

Вывод

В результате выполнения данной настройки сервера Samba были успешно созданы и настроены общие ресурсы с различными уровнями доступа. Настроены две папки:

  • samba_users — доступна всем пользователям Samba без ввода пароля,

  • samba_private — доступна только определённым пользователям после аутентификации.

Проверка с сервера и клиентских хостов (Windows 7 и Windows 10) подтвердила корректную работу настроек, включая разграничение доступа. Такой подход обеспечивает удобство управления доступом для различных пользователей, а использование групп позволяет гибко управлять правами в будущем. Данный алгоритм демонстрирует простоту настройки Samba и её возможности в организации файлового хранилища с контролем доступа.

Теги:
Хабы:
Всего голосов 11: ↑7 и ↓4+3
Комментарии7

Публикации