Добрый день, сегодня мы рассмотрим как при помощи пакета samba создать общую папку в Linux, которая будет доступна по сети для любого пользователя. А так же чтобы общая папка была доступна на ОС Windows.
Итак, приступим к установке.
Шаг 1. Для начала нам необходимо установить samba, для этого воспользуемся командой: yum install -y samba
Вместе с samba будет установлено несколько дополнительных пакетов.
Шаг 2. Далее нам будет необходимо отредактировать файл конфигурации, для этого воспользуемся текстовым редактором vim:
vim /etc/samba/smb.conf
Первый раздел global содержит следующие параметры
[global] workgroup = SAMBA - имя рабочей группы security = user - метод проверки пользователей passdb backend = tdbsam - механизм авторизации printing = cups - указывает использовать систему печати CUPS printcap name = cups - указывает на путь к файлу с адресом принтеров load printers = yes - определяет все ли принтеры будут загружены для просмотра по умолчанию cups options = raw - используется для печати от клиента windows [homes] comment = Home Directories - текстовое поле, которое отображается рядом с общим ресурсом valid users = %S, %D%w%S - список пользователей, которым можно подключиться browseable = No - будет ли ресурс отображаться в сетевом окружении read only = No - разрешает создание и чтение файлов в корневой директории inherit acls = Yes - Если значение "Yes", то наследуется значение каталога при его создании от родительского. [printers] comment = All Printers - комментарий path = /var/tmp - printable = Yes - позволяет ставить документы в очередь печати create mask = 0600 - устанавливает права на создаваемые файлы browseable = No - будет ли ресурс отображаться в сетевом окружении как общедоступный [print$] comment = Printer Drivers - комментарий path = /var/lib/samba/drivers - путь к драйверам write list = @printadmin root - определяет список пользователей и группы которые имеют права печатать force group = @printadmin - группа присваивается пользователям которые подключаются к нашему сервису create mask = 0664 - права на файлы directory mask = 0775 - права на директории
Сделаем бекап нашего дефолтного файла, сделав его копию и добавив к имени .bak, выполним команду: cp smb.conf smb.conf.bak
Создадим каталог который будет использоваться для публичного доступа пользователями
mkdir -p /samba/public
Изменим права для доступа к каталогу на 0755, для этого выполним
chmod -R 0755 public/
Создадим директория доступ к которой будут иметь только определенные пользователи.
mkdir -p /samba/private
Далее нам необходимо создать группу для пользователей, которые будут иметь доступ к папке с приватными данными
groupadd sambagroup
Далее создадим пользователя sambauser
useradd sambauser
Присвоим пользователю ранее созданную группу
usermod -aG sambagroup sambauser
Просмотрим список групп у пользователя sambauser, для этого выполним
id -Gn sambauser
Изменим группу для приватного каталога, для того чтобы пользователи не имеющие данную группу не могли получить доступ к данному каталогу
chgrp sambagroup /samba/private
Для авторизации в системе, по сети нашего пользователя, нам необходимо задать пароль для пользователя.
smbpasswd -a sambauser
Откроем снова наш конфигурационный файл и приведем его к виду.
vim /etc/samba/smb.conf
[global] workgroup = WORKGROUP security = user map to guest = bad user wins support = no dns proxy = no [public] path = /samba/public guest ok = yes force user = nobody browsable = yes writable = yes [private] path = /samba/private valid users = @smbgrp guest ok = no browsable = yes writable = yes
Для проверки правильности конфигурационного файла выполним команду
testparm -s
Далее проверим что, имя нашего сервера указано в хост файле. В качестве поддомена укажем localhost. Выполним команду vim /etc/hosts и укажем следующую строку.
Сохраним файл host. После чего перезапустим сервер samba. Выполним systemctl restart smb.
Теперь для того, чтобы мы могли подключиться к одной из наших директорий выключим firewalld.
systemctl stop firewalld
После чего уберем firewalld из автозагрузки выполнив команду
systemctl disable firewalld
Проверим выключен ли firewalld выполнив
systemctl stop firewalld
На этом установка Samba завершена! Далее мы рассмотрим как вы можете подключиться к общий папке в ОС Windows.