Linux samba расшарить папку для windows

Установка и настройка файлового сервера Samba на Ubuntu или Debian

Обновлено:
Опубликовано:

Используемые термины: Samba, Ubuntu, SMB.

Samba позволяет настроить файловое хранилище различных масштабов — от малых офисов для крупных организаций. В данной инструкции мы рассмотрим процесс настройки файлового сервера. Сначала мы выполним установку и базовую настройку с предоставлением гостевого доступа. После будет приведены примеры разграничения доступа по пользователям, группам и пользователям Active Directory. Инструкция протестирована на системах Ubuntu и Debian.

Подготовка сервера к работе
    Настройка времени
    Брандмауэр
Установка и запуск сервиса Samba
Создание первой шары с гостевым доступом
Настройка доступа к папке по логину и паролю
Доступ к папке для пользователей и групп
Помещение удаленных файлов в сетевую корзину
Настройка клиентов для подключения к шаре
    Windows
    Linux
Некоторые полезные опции Samba
    hosts allow
    hosts deny
    interfaces
    force user/group
    include
Читайте также

Подготовка сервера

Прежде чем перейти к установке файлового серера, выполним подготовку.

1. Время

Для корректного отображения дат, необходимо позаботиться о синхронизации времени. Для этого будем использовать демон chrony. Установим его:

apt update

apt install chrony

Разрешим автозапуск сервиса:

systemctl enable chrony

2. Брандмауэр

По умолчанию, в системах на базе Debian брандмауэр разрешает все соединения. Но если в нашем случае мы используем брандмауэр, необходимо открыть порты:

iptables -I INPUT -p tcp —dport 445 -j ACCEPT

iptables -I INPUT -p udp —dport 137:138 -j ACCEPT

iptables -I INPUT -p tcp —dport 139 -j ACCEPT

* где порт 445 используется для samba, а порты 137, 138 и 139 — для работы NetBIOS (использование имени компьютера для доступа).

Применяем настройки:

apt install iptables-persistent

netfilter-persistent save

Установка выполняется из репозитория одной командой:

apt update

apt install samba

И проверим, что сервис запустился: 

systemctl status smbd

Проверяем, что сервер самба позволяет к себе подключиться. Для этого можно с компьютера обратиться к серверу по SMB, например, на компьютере с Windows это можно сделать из проводника, прописав путь к серверу с двух слэшей:

Пример подключения к SMB шаре с компьютера на Windows

* в данном примере мы подключаемся к серверу Samba с IP-адресом 192.168.1.15.

Если мы настроили сервер правильно, система откроет пустую папку. На данном этапе проверка закончена и мы можем переходить к созданию первой шары.

Разберем самый простой пример предоставления доступа к папке — анонимный доступ всем пользователям без запроса пароля.

Открываем на редактирование конфигурационный файл samba:

vi /etc/samba/smb.conf

И добавляем настройку для общей папки:

[Общая папка]
    comment = Public Folder
    path = /data/public
    public = yes
    writable = yes
    read only = no
    guest ok = yes
    create mask = 0777
    directory mask = 0777
    force create mode = 0777
    force directory mode = 0777

* где: 

  • [Общая папка] — имя общей папки, которое увидят пользователи, подключившись к серверу.
  • comment — свой комментарий для удобства.
  • path — путь на сервере, где будут храниться данные.
  • public — для общего доступа. Установите в yes, если хотите, чтобы все могли работать с ресурсом.
  • writable — разрешает запись в сетевую папку.
  • read only — только для чтения. Установите no, если у пользователей должна быть возможность создавать папки и файлы.
  • guest ok — разрешает доступ к папке гостевой учетной записи.
  • create mask, directory mask, force create mode, force directory mode — при создании новой папки или файла назначаются указанные права. В нашем примере права будут полные.

Создаем каталог на сервере и назначим права:

mkdir -p /data/public

chmod 777 /data/public

Применяем настройки samba, перезагрузив сервис:

systemctl restart smbd

Пробуем подключиться к папке. Мы должны зайти в нее без необходимости ввода логина и пароля.

Теперь создадим каталог, в который вход будет разрешен только авторизованным пользователям.

Открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

Добавляем настройку для новой папки:

[Папка сотрудников]
    comment = Staff Folder
    path = /data/staff
    public = no
    writable = yes
    read only = no
    guest ok = no
    create mask = 0777
    directory mask = 0777
    force create mode = 0777
    force directory mode = 0777

* эти настройки, во многом, похожи на те, что использовались в примере выше. Вот основные различия:

  • path = /data/staff — используем новый путь до папки.
  • public = no — запрещаем публичный доступ.
  • guest ok = no — не разрешаем гостевое подключение.

Создаем каталог для новой папки:

mkdir /data/staff

Задаем права на созданный каталог:

chmod 777 /data/staff

Создаем пользователя в системе Linux:

useradd staff1

* где staff1 — имя пользователя.

Задаем пароль для пользователя:

passwd staff1

Теперь создадим пользователя в samba:

smbpasswd -a staff1

Перезапускаем samba:

systemctl restart smbd

Пробуем зайти на сервер — общую папку мы должны открыть без авторизации, а при попытке открыть папку сотрудников должно появиться окно ввода логина и пароля.

Если мы авторизованы на компьютере, с которого пытаемся подключиться к серверу, под той же учетной записью, что создали для доступа к папке, samba может и не потребовать аутентификации.

Теперь создадим папку, доступ к которой будут иметь ограниченное количество пользователей.

Открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

Добавляем настройку для новой папки:

[Приватная папка]
    comment = Private Folder
    path = /data/private
    public = no
    writable = no
    read only = yes
    guest ok = no
    valid users = admin, staff2, staff3, @privateusers
    write list = admin, staff2
    create mask = 0777
    directory mask = 0777
    force create mode = 0777
    force directory mode = 0777
    inherit owner = yes

* стоит обратить внимание на следующие настройки:

  • path = /data/private — используем новый путь до папки.
  • writable = no и read only = yes — в данном примере мы разрешим запись в каталог только некоторым пользователям. Поэтому общие настройки, разрешающие запись в папку, должны быть запрещены.
  • valid users — список пользователей, которым разрешено подключаться к каталогу. В данном примере разрешения работают для пользователей admin, staff2 и staff3, а также для всех, кто входим в группу privateusers.
  • write list — список пользователей, которые имеют доступ к папке на чтение и запись. В данном примере мы разрешаем это только для пользователей admin и staff2.
  • inherit owner — опция позволяем включить наследование владельца при создании папок и файлов.

* если мы хотим, чтобы доступ к каталогу был полный у определенных пользователей (без разделения на тех, кто может только читать и тех, кто может также писать в папку), то опцию write list можно не указывать, а опции writable и read only оставить как в примерах выше.

Создаем каталог для новой папки:

mkdir /data/private

Задаем права на созданный каталог:

chmod 777 /data/private

Для применения настроек перезапускаем samba:

systemctl restart smbd

Создать группу пользователей можно командой:

groupadd privateusers

Добавить ранее созданного пользователя в эту группу:

usermod -a -G privateusers staff1

Подробнее о работе с учетными записями в Linux.

Проверяем возможность работы с новым каталогом.

Сетевая корзина

При удалении файлов из общей папки, данные удаляются навсегда. Но мы можем настроить сетевую корзину — скрытый каталог, в который будут перемещаться удаляемые с самбы объекты.

Открываем конфигурационный файл:

vi /etc/samba/smb.conf

Создаем шару:

[Recycle]
    comment = Snap Directories
    path = /data/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

Перезапускаем самбу:

systemctl restart smbd

Пробуем зайти в сетевой каталог Recycle и создать, а после удалить файл. Он должен оказаться к скрытой папке .recycle.

Для автоматической чистки сетевой корзины можно создать скрипт:

mkdir /scripts

vi /scripts/cleanrecycle.sh

#!/bin/bash

recyclePath=»/data/recycle/.recycle»
maxStoreDays=»30″

/usr/bin/find $recyclePath -name «*» -ctime +$maxStoreDays -exec rm {} \;

* в данном скрипте мы ищем все файлы в каталоге /data/recycle/.recycle, которые старше 30 дней и удаляем их.

Разрешаем запуск скрипта:

chmod +x /scripts/cleanrecycle.sh

Создаем задание в планировщике:

crontab -e

0 5 * * * /scripts/cleanrecycle.sh

* в данном примере мы будем запускать скрипт по очистке сетевой корзины каждый день в 05:00.

Подключение к шаре

Теперь разберем примеры подключения к нашим шарам из разных систем.

Windows

Для разового подключения можно использовать проводник, прописав в нем адрес сервера через косые линии:

Пример подключения к SMB шаре с компьютера на Windows

Для подключения сетевого диска, который будет автоматически создаваться при запуске системы, в проводнике сверху нажимаем Простой доступПодключить как диск:

Подключение сетевого диска в Windows

В открывшемся окне прописываем путь до сетевой папки и выбираем имя диска:

Прописываем путь до сетевой папки, на которую хотим сделать сетевой диск

Сетевой диск настроен.

Но мы может сделать те же действия из командной строки:

net use x: \\samba.dmosk.local\AD ACL /persistent:yes

* где x: — имя сетевого диска; \\samba.dmosk.local\AD ACL — путь до сетевого каталога; persistent:yes — указывает на то, что нужно восстанавливать данный диск каждый раз при входе в систему.

Linux

Монтирование

В Linux мы можем монтировать удаленный каталог с помощью команды mount, например:

mount -t cifs «//192.168.1.15/ad» /mnt -o user=dmosk

* где 192.168.1.15 — IP-адрес сервера; mnt — каталог, куда монтируем сетевую шару; dmosk — пользователь, под которым выполняем подключение к сетевому каталогу.
** в систему должен быть установлен пакет cifs-utils.

Подробнее, процесс монтирования описан в инструкции Как в Linux монтировать шару CIFS.

SMB Browser

Также мы можем увидеть содержимое удаленных папок на samba при помощи клиента smb. Для начала установим данного клиента:

а) на Red Hat / CentOS / Fedora:

yum install samba-client

б) на Debian / Ubuntu / Mint:

apt install samba-client

После вводим команду:

smbclient -L 192.168.1.15 -U staff@dmosk.local

* где 192.168.1.15 — сервер samba, к которому мы пытаемся подключиться; staff@dmosk.local — учетная запись, под которой выполняется подключение.

… мы получим список каталогов, которые расшарены на сервере.

Также мы можем подключиться к конкретной папке, например:

smbclient \\\\192.168.1.15\\ad -U staff@dmosk.local

Мы подключимся клиентом samba — можно выполнить запрос на показ содержимого:

smb: \> ls

Или полный список возможных команд:

smb: \> help

Некоторые опции Samba

Рассмотрим некоторые полезные опции, которые могут пригодится при настройке Samba.

1. hosts allow

Параметр задает список разрешенных хостов или сетей, с которых можно подключаться к серверу. Если его прописать в секцию с настройкой шары, то он будет действовать только для нее, если прописать в [global], то для всех общих папок.

Пример использования параметра.

hosts allow = comp1, 192.168.1., 192.168.160.0/255.255.252.0

* в нашем примере мы разрешим доступ только для компьютера comp1, компьютеров из сетей 192.168.1.0/24 и 192.168.160.0/22.

2. hosts deny

Параметр аналогичный hosts allow, только он наоборот — запрещает доступ для хостов и сетей. Например:

hosts deny = comp2, 192.168.2., 192.168.164.0/255.255.252.0

hosts deny = ALL EXCEPT 192.168.3.

3. interfaces

По умолчанию samba использует все сетевые интерфейсы, кроме локальной петли (127.0.0.1). Параметр interfaces позволит указать, на каком сетевом адаптере файловый сервер должен принимать запросы. Пример:

interfaces = ens32 192.168.1.15/24 192.168.2.15/255.255.255.0

4. Force User/Group

Опции force user и force group позволяют задать пользователя и группу, от которых будет работать подключение пользователя к samba. Параметр может оказаться полезным для создания шары из каталога с уже назначенным владельцем, которого мы не хотим менять.

Прописывается для шары:

force user = apache
force group = apache

* данная настройка позволит подключаться к шаре под пользователем apache.

5. Include

Позволяет подключить дополнительный файл с конфигурацией.

include = /etc/samba/conf.d/shares.conf

* данная опция будет дополнительно подключать конфигурацию из файла /etc/samba/conf.d/shares.conf (прописывается полный путь).

Читайте также

Возможно, эти инструкции будут также Вам полезны:

1. Как в Linux монтировать шару CIFS.

2. Как настроить автоматическое монтирование дисков в Linux.

3. Настройка дисковых квот в Linux.

4. Установка и настройка samba в Linux CentOS.

Основная цель такой папки — возможность обмена файлами в локальной сети между Linux и Windows-машинами. Специфической привязки к 1С-направлению здесь нет, но такая папка поможет разработчикам хранить файлы конфигураций 1С, а также выгрузки документации по разработке и отчеты для обеспечения оперативного доступа при отсутствии ответственного сотрудника на месте.

В целом Ubuntu поставляется с общей папкой в домашнем каталоге. Она недоступна по умолчанию, но настраивается несколько различных типов обмена файлами в локальной сети компании. Изначальное предназначение папки — инструмент личного обмена файлами.

Главное стартовое условие — компьютеры, между которыми предполагается организовать обмен, должны быть локальной сети.

В качестве предпочтительного способа мы выбрали сервер Samba — есть и другие способы, но они требуют наличие Интернета. Samba — проверенное годами решение для ситуаций, когда файлы нужно хранить на сервере Linux.

Samba — Linux, Windows или Mac OS совместимый пакет программного обеспечения, позволяющий обмениваться файлами, документами и принтерами по сети.

Установка

apt install samba samba-common

Для тестирования настроек устанавливаем клиент Samba.

apt install smbclient

apt install samba-common-bin

Настройки

Скопируем шаблонный файл настроек на случай возврата в исходное состояние.

cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

Удаляем все закомментированные строки из файла настроек.

bash -c 'grep -v -E "^#|^;" /etc/samba/smb.conf.backup | grep . > /etc/samba/smb.conf'

Создаем отдельного системного пользователя

useradd -m -c "Name_User" -s /bin/bash usersamba

Установка пароля:

passwd usersamba

smbpasswd -a usersamba

Создаем общую папку Samba, доступную для всех

Создание папки:

mkdir -p /home/usersamba/smb/

Настраиваем права доступа к папке:

chown -R nobody:nogroup /home/usersamba/smb/

chmod ug+rwx /home/usersamba/smb/

или

chmod -R 0775 /home/usersamba/smb/

Для доменной сети:

chown root:"пользователи домена" /home/usersamba/smb/

Редактируем настройки

sudo gedit /etc/samba/smb.conf

Добавляем в конец файла /etc/samba/smb.conf следующие строки: usersamba заменяем на имя пользователя компьютера с Samba.

Папка будет открыта для чтения и записи.

[BackupWork]

comment = Samba Share

path = /home/usersamba/smb/

guest ok = yes

browsable =yes

writable = yes

read only = no

force user = usersamba

force group = usersamba

Перезапуск Samba

systemctl restart smbd.service

service smbd restart

Проверка правильности конфигурации Samba

testparm

Общая папка в Ubuntu: зачем нужна и как создать 1

Защищенная папка Samba, доступная только по паролю

Для того, чтобы защитить открытую папку паролем, достаточно изменить параметр guest ok на no.

Чтобы скрыть в обзоре сети папку, можно изменить параметр browsable на no.

Сегодня я покажу как можно расшарить папки в Ubuntu для домашних сетей, что бы можно было заходить в ваши папки в linux, например с компьютера с Windows.

Итак, приступим

Устанавливаем samba:

sudo apt-get update
sudo apt-get install samba

После того как samba будет установлена нужно поправить конфиг. Для этого набираем:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo nano /etc/samba/smb.conf

В файл вставляем следующие строчки:

[global]
workgroup = WORKGROUP
server string = servername 
netbios name = SERVERNAME
#servername замените на имя вашего хоста
log file = /var/log/samba/%m.log
max log size = 50 
security = user 
#запрещаем гостевой доступ
map to guest = Bad User
dns proxy = no

# следовать по симлинкам
unix extensions = no
wide links = yes
follow symlinks = yes

# utf кодировка
dos charset = cp866
unix charset = UTF8

# отключаем принтеры
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
# можно ограничить доступ по адресам/сетям
# hosts allow = 127. 192.168.24.

# по умолчанию все файлы, начинающиеся с точки будут иметь атрибут "скрытый"
hide dot files = yes

#добавляем шару
#название общей папки
[system_trash]
#путь до нее
path = /mnt/system_trash
guest ok = no
read only = no
browsable = yes
writeable = yes

Далее нужно посмотреть что бы имени вашего хоста соответствовал ip адрес этого хоста:

sudo nano /etc/hosts

Здесь должна быть строчка вида:

192.168.1.100 servername

После этого сохраняем файл (в нано комбинация клавиш ctrl+x) и перезапускаем самбу:

sudo /etc/init.d smbd restart
sudo /etc/init.d samba restart

Далее нужно добавить пользователя в пользователи samba (пользователь должен существовать в системе). Добавим нового пользователя в систему и самбу:

sudo adduser user
sudo smbpasswd -a user

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

Для справки – что бы посмотреть пользователей samba нужно набрать команду:

sudo pdbedit -L -v

Что бы удалить пользователя Samba:

sudo smbpasswd -x user

Видео по теме:

Samba — это программное обеспечение для организации обмена файлами и работы с общими ресурсами между компьютерами под управлением Linux/Unix и операционной системой Windows. Samba состоит из клиентской и серверной части. Клиентская часть позволяет получить доступ к сетевым папкам и ресурсам Windows, а серверная, в свою очередь, открывает общий доступ к папке Ubuntu для других машин, в том числе и Windows.

В этой небольшой инструкции будет рассмотрена простейшая настройка Samba Ubuntu 18.04, а также как настроить общий доступ к папке Ubuntu с несколькими уровнями привилегий.

Мы создадим три общие папки с различными уровнями разрешений. Папку с анонимным доступом, с доступом для пользователей, входящих в определенную группу и доступом лишь для определенного пользователя.

Получить доступ к расшаренным папкам в Ubuntu смогут как Linux так и Widnows машины, с помощью любой программы для работающей по протоколу SMB.

Содержание статьи

  • Подготовка Windows
  • Настройка Samba в Ubuntu
  • Общий доступ к папке Ubuntu
  • Защищенный общий доступ к папке Ubuntu
  • Выводы

Подготовка Windows

Для того чтобы все работало правильно, все машины должны состоять в одной рабочей группе, указанной на сервере Samba. По умолчанию для Windows, Linux и MacOS рабочая группа называется Workgroup. Чтобы узнать какая рабочая группа используется в вашей Windows откройте командную строку (Win+R, затем cmd) и выполните вот такую команду:

net config workstation

share

Нужный нам параметр мы видим в строке Домен рабочей станции. Это и есть рабочая группа.

Теперь, если у компьютера с Samba сервером в вашей сети будет постоянный IP адрес желательно ввести его в файле hosts. Для этого запустите командную строку от имени администратора:

share3

И выполните команду:

notepad C:\Windows\System32\drivers\etc\hosts

В открывшимся файле добавьте строчку с IP адресом компьютера, на который будет установлен Samba:

192.168.0.1 srvr1.domain.com srvr1

Теперь можно переходить к вопросу как расшарить папку Ubuntu.

Начнем, как обычно, с установки. Установка Samba Ubuntu вместе со всеми необходимыми компонентами выполняется командой:

sudo apt-get install samba samba-common python-glade2 system-config-samba -y

Когда все будет установлено, можно переходить к настройке. Сначала создайте резервную копию оригинального файла конфигурации Samba:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

После создания резервной копии, создайте свой файл конфигурации, этой командой:

 sudo vi /etc/samba/smb.conf

Сначала укажем глобальные настройки файлового сервера. Для этого вставьте в файл такие строки:

[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
netbios name = Ubuntu Share
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
passdb backend = tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
pam password change = yes
map to guest = bad user
usershare allow guests = yes

Рассмотрим подробнее что значат эти строки.

  • workgroup — рабочая группа, как уже говорилось должна одинакова на всех машинах
  • netbios name — имя компьютера, которое будет отображаться в Windows;
  • log file — адрес файла, куда будут складываться сообщения об ошибках и другая информация;
  • security — по умолчанию выполнять аутентификацию на уровне пользователя;
  • name resolve order — очередность разрешения IP адресов по NetBIOS имени. bcast — означает отправить в локальную сеть широковещательный запрос. Если все компьютеры между которыми планируется взаимодействие находятся в одной сети этот вариант оптимальный;
  • passdb backend — способ хранения паролей пользователей;
  • unix password sync — синхронизация паролей пользователей samba с локальными паролями Unix;
  • map to guest — указывает, когда пользователю будет предоставляться гостевой доступ. Доступно три значения — never — никогда, bad user — когда такого пользователя не существует, bad password — когда пароль введен неверно,

Когда завершите создание конфигурационного файла, переходим к вопросу как расшарить папку Ubuntu для Windows.

Общий доступ к папке Ubuntu

Сначала давайте создадим общую папку доступную всем. То есть с анонимным доступом, без авторизации samba.

Создайте папку, к которой будем открывать доступ, например:

sudo mkdir -p /samba/allaccess

После того как папка создана, нужно сделать для нее правильные права доступа. Следующие команды разрешают доступ к папке для всех и делают владельцем nobody:

cd /samba
sudo chmod -R 0755 allaccess
sudo chown -R nobody:nogroup allaccess/

Следующим шагом будет описать папку allaccess в файле настройки samba:

[allaccess]
path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = no

Теперь ваш конфигурационный файл должен выглядеть вот так:

[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
netbios name = Ubuntu Share
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
passdb backend = tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
pam password change = yes
map to guest = bad user
usershare allow guests = yes
#==============
[AllAccess]
path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = no

Рассмотрим подробнее опции, которые были здесь использованы:

  • path — путь к папке, которую нужно расшарить;
  • browsable — будет ли папка отображаться в списке доступных шар;
  • writable — будет ли папка доступна для записи;
  • read only — папка доступна только для чтения;
  • guest ok, public — будет ли разрешен гостевой доступ;
  • only guest — если установлено yes, то папка будет доступна только гостям;
  • hosts allow — ip адреса, с которых можно получить доступ к этому серверу;
  • valid users — по умолчанию могут авторизоваться все пользователи, если в этом параметре передать список пользователей, то авторизоваться смогут только они;
  • create mask — маска прав для создаваемых файлов.

Чтобы применить изменения, перезапустите сервер Samba:

sudo systemctl restart samba

Настройка Samba Ubuntu для анонимного доступа завершена. Теперь вы можете проверить доступность общей папки allaccess из Windows, для этого нажмите Win+R и выполните:

\\srvr1\allaccess

share5

Вы увидите нашу папку. Если не увидите, проверьте еще раз конфигурацию. Доступ к папке можно получить без авторизации samba. Настойка Samba шары с доступом без авторизации завершена.

Также вы можете подключится к этому серверу из Linux с помощью Nautilus для этого достаточно набрать адрес smb://ip-сервера, в разделе другие места:

Защищенный общий доступ к папке Ubuntu

Чтобы расшарить папку для Windows Ubuntu, к которой будут иметь доступ только пользователи из определенной группы, создадим отдельную папку и опишем ее в файле настройки Samba в Ubuntu.

Сначала создаем папку:

sudo mkdir -p /samba/allaccess/secured

Дальше установим такие права, чтобы доступ к папке могли получить только пользователи из группы securegroup.

Создаем группу:

sudo addgroup securedgroup

Настраиваем права:

cd /samba/allaccess
$ sudo chown -R richard:securedgroup secured
$ sudo chmod -R 0770 secured/

Последний шаг, добавляем настройки в конфигурационный файл samba:

sudo vi /etc/samba/smb.conf

[secured]
path = /samba/allaccess/secured
valid users = @securedgroup
guest ok = no
writable = yes
browsable = yes

Перезапустите сервер Samba. Теперь доступ к общей папке в Ubuntu могут получить только пользователи группы securegroup.

Чтобы проверить как это работает добавим пользователя richard в нашу группу:

sudo usermod -a -G securedgroup richard

Чтобы пользователь мог работать с расшаренными папками в Ubuntu, он должен быть в базе данных Samba. Поэтому создадим для него пароль Samba:

sudo smbpasswd -a richard

После ввода команды вам будет предложено ввести новый пароль. Для применения изменений не забудьте перезагрузить файловый сервер.

Если вы хотите чтобы общий доступ к папке Ubuntu мог получить доступ только определенный пользователь замените в конфигурационном файле @securegroup на имя пользователя. Также можно указать несколько пользователей через запятую или несколько групп.

Выводы

Вот и все. Теперь вы знаете как правильно выполняется установка Samba на Ubuntu 18.04, а также ее настройка. Кроме ручного редактирования конфигурационных файлов, для того чтобы расшарить папку в Ubuntu можно воспользоваться графической утилитой system-samba-config. Но после того как мы разобрали все низкоуровневые настройки, с этой утилитой вы справитесь без труда.

Уровень сложностиПростой

Время на прочтение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-адреса для сервера и клиентских хостов

  • Сервер Samba192.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 и её возможности в организации файлового хранилища с контролем доступа.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Foobar2000 для windows 10 64 bit
  • Как запустить последний удачный запуск windows 10
  • Windows 10 обновилась до 11 как откатить
  • Как открыть параметры адаптера в windows 10
  • Chordana play для windows