Задать вопрос
Все статьи / Полезная информация / Как установить и настроить Samba на Ubuntu 24.04
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

Как установить и настроить Samba на Ubuntu 24.04

В этом руководстве мы узнаете, как установить Samba на Ubuntu 24.04

Что такое Samba 

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

Основа работы Samba — протокол SMB (Server Message Block), также известный как CIFS (Common Internet File System). Он обеспечивает взаимодействие между компьютерами в локальной сети и позволяет пользователям подключаться к общим ресурсам без необходимости использовать дополнительные программы.

Назначение Samba

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

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

  • создавать общие сетевые каталоги, к которым подключаются пользователи Windows и Linux;
  • централизованно хранить файлы и управлять разрешениями на доступ;
  • настраивать печать по сети, используя общий принтер;
  • интегрировать сервер Linux в существующую Windows-сеть или домен Active Directory;
  • разграничивать права доступа, создавая пользователей и группы.

Установка Samba на Ubuntu 24.04

Чтобы установить Samba на Ubuntu 24.04 подключитесь к серверу по SSH под пользователем с административными правами. Например:

ssh user@your_server_ip

Обновите список пакетов и установите последние обновления:

sudo apt update
sudo apt upgrade

Затем установите Samba:

sudo apt install samba -y

Чтобы служба запускалась автоматически при старте системы, добавьте ее в автозагрузку:

sudo systemctl enable smbd

После этого запустите Samba вручную:

sudo systemctl start smbd

Проверьте, работает ли служба корректно:

sudo systemctl status smbd

В случае успешного запуска в выводе будет указано, что служба active (running), например:

● smbd.service - Samba SMB Daemon
     Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-01-01 00:00:00 UTC; 15s ago
       Docs: man:smbd(8)
             man:samba(7)
             man:smb.conf(5)
   Main PID: 12345 (smbd)
     Status: "smbd: ready to serve connections..."

Если на сервере используется брандмауэр UFW, разрешите трафик для Samba:

sudo ufw allow samba

Как настроить административный доступ в Samba 

Подключитесь к серверу по SSH под пользователем с правами администратора:

ssh user@your_server_ip

Создайте директорию, к которой нужно предоставить доступ:

sudo mkdir /var/directory_name

Вместо directory_name укажите свое название.

Чтобы пользователи могли читать и записывать файлы в эту папку, задайте полные права доступа:

sudo chmod 777 /var/directory_name

Далее откройте конфигурационный файл Samba:

sudo nano /etc/samba/smb.conf

В конец файла добавьте следующий блок настроек:

[directory_name]
    comment = directory_name
    path = /var/directory_name
    public = no
    writable = yes
    read only = no
    guest ok = no
    create mask = 0775
    directory mask = 0775
    force create mode = 0775
    force directory mode = 0775

Где:

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

Сохраните изменения комбинацией клавиш Ctrl + O, затем закройте файл с помощью Ctrl + X.

Теперь создайте пользователя Samba, который будет иметь доступ к ресурсу:

sudo smbpasswd -a username

Вместо username укажите нужное имя и задайте пароль.

Как настроить доступ для пользователей и групп в Samba 

Подключитесь к серверу по SSH под пользователем с административными правами:

ssh user@your_server_ip

Создайте директорию, для которой нужно задать доступ. 

sudo mkdir /var/group_directory

Вместо group_directory укажите собственное имя папки.

Назначьте полные права доступа, чтобы Samba могла управлять файлами в этой папке:

sudo chmod 777 /var/group_directory

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

sudo nano /etc/samba/smb.conf

Добавьте в конец файла блок с настройками ресурса:

[group_directory]
    comment = group_directory
    path = /var/group_directory
    public = no
    writable = no
    read only = yes
    guest ok = no
    valid users = username1, username2, @group
    write list = username
    create mask = 0775
    directory mask = 0775
    force create mode = 0775
    force directory mode = 0775
    inherit owner = yes

Где:

  • [group_directory] имя ресурса, которое будет отображаться при подключении;
  • comment комментарий, отображаемый пользователям;
  • path путь к директории;
  • public = no отключает публичный доступ;
  • writable = no запрещает запись для всех пользователей;
  • read only = yes устанавливает режим только для чтения;
  • guest ok = no запрещает доступ гостевым пользователям;
  • valid users = username1, username2, @group задает список пользователей и групп, которым разрешен доступ (группы указываются со знаком @);
  • write list = username определяет пользователей, имеющих право на запись;
  • create mask, directory mask, force create mode, force directory mode — задают права для создаваемых файлов и папок;
  • inherit owner = yes включает наследование владельца при создании новых файлов и каталогов.

Сохраните изменения сочетанием клавиш Ctrl + O, затем закройте файл с помощью Ctrl + X.

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

sudo systemctl restart smbd

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

Как настроить анонимный доступ в Samba 

Предположим, вы работаете с удаленным сервером, расположенным за пределами вашего основного облака. Согласно политике безопасности, прямое подключение к нему по IP-адресу запрещено, и взаимодействие возможно только через предварительно настроенный туннель. Как правило, такие серверы доступны по адресу 10.8.0.5, и именно с этим адресом будет происходить дальнейшая работа.

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

sudo nano /etc/samba/smb.conf

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

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

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

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

testparm

Если ошибок не обнаружено, добавьте блок с настройками анонимного ресурса:

[public]
    comment = общая папка
    path = /srv/shared_data
    public = yes
    writable = yes
    read only = no
    guest ok = yes

Где:

  • [public] имя ресурса, которое будет отображаться при подключении;
  • comment описание папки (может быть любым);
  • path путь к директории, в которой хранятся общие файлы;
  • public = yes разрешает общий доступ без учетной записи;
  • writable = yes позволяет пользователям записывать и изменять файлы;
  • read only = no делает папку доступной для записи;
  • guest ok = yes разрешает гостевое подключение без пароля.

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

Также рекомендуется установить маску 0777, чтобы всем пользователям были доступны чтение, запись и выполнение:

sudo chmod -R 0777 /srv/shared_data

Перезапустите службу Samba:

sudo systemctl restart smbd

Проверить доступ можно с другого компьютера, например из Windows, введя в адресной строке проводника:

\\10.8.0.5\public
Если все настроено правильно, общая папка откроется без запроса логина и пароля.

Как настроить сетевую корзину в Samba 

Чтобы случайно не удалить важные файлы без возможности восстановления, в Samba можно настроить сетевую корзину. Все удаленные пользователями файлы будут временно перемещаться в отдельную директорию, откуда их можно будет восстановить.

Сначала создайте каталог для хранения удаленных файлов:

sudo mkdir -p /srv/recycle
sudo chmod 777 /srv/recycle

Затем откройте файл конфигурации Samba:

sudo nano /etc/samba/smb.conf

Добавьте в конец файла следующий раздел:

[Recycle]
    comment = Корзина для временного хранения файлов
    path = /srv/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, уникальный для каждого пользователя (%U);
  • recycle:keeptree = Yes сохраняет структуру каталогов при удалении, чтобы файлы можно было легко найти;
  • recycle:touch = Yes обновляет временные метки файлов при их перемещении в корзину;
  • recycle:versions = Yes сохраняет несколько версий файлов с одинаковыми именами, добавляя к ним порядковый номер;
  • recycle:maxsize = 0 отключает ограничение на размер удаляемых файлов;
  • recycle:exclude задает шаблоны файлов, которые не будут помещаться в корзину (например, временные файлы *.tmp);
  • recycle:exclude_dir исключает определенные каталоги (например, /tmp).

После внесения изменений сохраните файл (Ctrl + O, затем Ctrl + X) и перезапустите Samba, чтобы применить настройки:

sudo systemctl restart smbd

Теперь при удалении файлов с сетевого ресурса они будут перемещаться в корзину /srv/recycle, откуда их можно будет восстановить.

Предыдущая статья
Как установить PyCharm на Ubuntu и Debian
Следующая статья
Как установить и настроить Visual Studio Code для работы с Python