# Практика 4.1
### Задача:
- Получить доступ к папкам и файлам находящимся на файловом сервере Linux, клиентом Linux
- Получить доступ к папкам и файлам находящимся на файловом сервере Linux, клиентом Windows
- Добавить сервис Samba в автозагрузку OS Linux
- Настрить Samba ресурс с названием share и дать права на чтение группе пользователей users, но предоставить возможность записи для группы с именем admins, а также пользователю mirea, для этого можете отредактировать файл `/etc/samba/smb.conf`.
- Настройка корзины для общего ресурса (для тех кому показалось легко🙂)
-- пояснить команду `smbstatus` (*продемонстрировать, пояснить результат*)
-- записать вывод в файл .txt
Установим sama сервер и samba-client
apt install -y samba samba-client
Создадим общюю папку
mkdir -p /samba/share
изменим права доступа на созданную папку
sudo chmod -R 0755 /samba/share/
Создадим группу пользователей users
groupadd users
Создадим группу пользователей admins
groupadd admins
Создаем пользователей
useradd users1
useradd mirea
Добавляем пользователя в группу
usermod -aG users users1
usermod -aG users mirea
изменим принадлежность приватной директории
chgrp admins /samba/share
Зададим пароль пользователя samba
smbpasswd -a users1
smbpasswd -a mirea
Отконфигурируем файл /etc/samba/smb.conf следующим образом
[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[share]
path = /samba/share
guest ok = no
force groub = nogroup
force user = nobody
browsable = yes
writable = yes
valid users =@users, @admins
read list = @users
write list = @admins, mirea
После внесеных изменений перезапускаем samba
service smbd restart
Добавление сервиса в автозагрузку
systemctl enable smbd.service
**Создание сетевой корзины**
В конфигурационном файле /etc/samba/smb.conf прописываем секцию
[Recycle]
comment = Snap Directories
path = /samba/recycle
public = yes
browseable = yes
writable = yes
vfs objects = recycle
recycle:repository = .recycle/%U
recycle:keeptree = Yes
recycle:touch = Yes
recycle:versions = Yes
recycle:maxsize = 0
recycle:exclude = *.tmp, ~$*
recycle:exclude_dir = /tmp
* где:
vfs objects = recycle — использовать подсистему recycle.
recycle:repository — где хранить удаленные объекты. В данном примере удаленные файлы попадут в скрытый каталог .recycle к котором создастся каталог с именем пользователя, удалившего файл или папку.
recycle:keeptree — удалять объекты с сохранение дерева каталогов.
recycle:touch — изменить ли дату изменения файла при его перемещении в корзину.
recycle:versions — при удалении файлов с совпадающими именами, добавлять номер версии.
recycle:maxsize — не помещать в корзину файлы, размер которых больше заданного параметра (в байтах). В данном примере, помещать файлы любого размера.
recycle:exclude — исключить файлы.
recycle:exclude_dir — исключить каталог.
Создаем каталог и задаем права:
mkdir /data/recycle
chmod 777 /data/recycle
Команда smbstatus покажет вам текущие соединения к общим ресурсам сервера

По номеру pid процесса можно определить какой польщователь открыл файл
smbstatus -u | grep 3886

## Настройка firewall iptables
Открываем порты для доступа к сервису SAMBA
iptables -A INPUT -p tcp -s 192.168.0.0/16 --dport 445 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.0.0/16 --dport 139 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.0.0/16 --dport 137 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.0.0/16 --dport 138 -j ACCEPT
Чтобы ваши правила iptables сохранялись после перезагрузки, установите iptables-persistent package с помощью инструмента apt
apt install iptables-persistent
Чтобы изменения были постоянными после перезагрузки, запустите команду iptables-save:
iptables-save > /etc/iptables/rules.v4
Конец.