Найти в Дзене
Евгений Дергунов

Настройка файлового сервера в операционной системе Ubuntu Server 20.4

Файловый сервер (samba-server) используется для организации файлового обмена и контролируемого доступа к общим каталогам (папкам) по локальной сети.

В приведенном примере установка службы будет осуществляться на втором сервере (Рисунок 1).

Рисунок 1
Рисунок 1

Начало истории

Порядок настройки IP-адресации рассказан в статье:

Предварительно на втором сервере была настроена служба DHCP (без получения IP-адресов рабочими станциями не получится организовать работу сети):

На втором сервере должен быть настроен выход в сеть Интернет через первый сервер (пункт 10):

Так как рассматривается сеть, организованная при помощи программы виртуализации VBox от Oracle, то добавление дополнительного дискового пространства будет рассматриваться также с применением данной программы. В реальных условиях подключение дополнительного диска будет осуществляться подобным образом. Только нужно учесть, что диск, на котором располагается системный раздел лучше всего подключать к нулевому интерфейсу на материнской плате, а другие диски уже к первому и т.д. порту. Дело в том, что если это условие не выполнить, то может произойти путаница с нумерацией дисков в системе. Диски нумеруются в Linux буквами латинского алфавита. Если подключить диск, например, ко второму порту, но он будет единственный в системе, то имя диска sda. При подключении второго диска к первому порту материнской платы после загрузки системы произойдет переименование дисков. Имя sda будет присвоено новому диску, а системный получит имя sdb.

В статье будет рассмотрена создание трех пользователей (user1, user2, user3) и трех каталогов (f1, f2, f3). Можно организовать различные варианты доступа к указанным папкам. Определимся следующим образом:

user1 – полный доступ ко всем трем каталогам;

user2 – только чтение каталога f1 и полный доступ к двум другим;

user3 – не имеет доступа к каталогу f1, может просматривать содержимое каталога f2 и имеет полный доступ к каталогу f3.

Настройку службы samba можно выполнить в следующей последовательности:

1) На выключенном втором сервер в интерфейсе программы VBox выбрать этот сервер зайти в Настройки → Носители и выбрать Контроллер: SATA. У него появится значок Добавить Жесткий диск, нажать на него (Рисунок 2).

Рисунок 2
Рисунок 2

Выбрать пункт Создать. Тип диска VDI – Динамический виртуальный жесткий диск – 5ГБ, после создания вернутся в окно Выбора жесткого диска. После этого появится созданный диск, выбрать его (Рисунок 3).

Рисунок 3
Рисунок 3

Более подробно данная процедура рассмотрена в статье:

2) Включить второй сервер. Чтобы узнать имя подключенного диска ввести команду:

sudo fdisk –l

Как правило, первый диск обозначен как /dev/sda и уже имеет разметку, а второй – /dev/sdbи никак не размечен.

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

3) Для создания разметки (здесь и далее считаем, что новый диск имеет имя sdb) вводим команду:

sudo fdisk /dev/sdb

Для создания новой разметки нажимаем N, при запросе типа выбрать P, так как нужен первичный. Далее последуют три вопроса – просто нажать Enter. Программа скажет, что был создан новый раздел 1 типа Linux и размером 5ГБ. После чего ввести w.

Отформатировать созданный раздел (последний символ единица):

sudo mkfs.ext4 /dev/sdb1

4) Смонтировать новый диск в каталог media. Для этого создаем в нем каталог hdd:

sudo mkdir /media/hdd

смонтировать новый диск в этот каталог:

sudo mount /dev/sdb1 /media/hdd

убедиться, что монтирование было выполнено (диск должен быть привязан к /media/hdd)

df -h | grep “/dev/sdb1”

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

sudo nano /etc/fstab

и дописать в конце конфигурационного файла (Рисунок 4):

/dev/sdb1 /media/hdd ext4 defaults 0 0

Рисунок 4
Рисунок 4

Сохранить изменения в конфигурационном файле, перезагрузить сервер и проверить куда смонтирован диск (Рисунок 5).

Рисунок 5
Рисунок 5

Более подробно порядок выполнения рассмотрен в статье:

а также в видеоролике:

5) Установить службу samba:

sudo apt install samba

6) Создать трех пользователей:

sudo useradd user1

sudo useradd user2

sudo useradd user3

Проверку созданных пользователей можно осуществить при помощи команды (Рисунок 6):

sudo cat /etc/passwd | grep user

Рисунок 6
Рисунок 6

7) Создать три каталога на втором диске (который был смонтирован по адресу /media/hdd):

sudo mkdir /media/hdd/f1 /media/hdd/f2 /media/hdd/f3

8) Отсоединить созданные папки от root:

sudo chown nobody:nogroup /media/hdd/f1

sudo chown nobody:nogroup /media/hdd/f2

sudo chown nobody:nogroup /media/hdd/f3

sudo chmod 777 -R /media/hdd

Проверить принадлежность каталогов командой (Рисунок 7):

ls -l /media/hdd

Рисунок 7
Рисунок 7

9) Создать пароль для каждого пользователя (в примере только для user1):

sudo smbpasswd –a user1

10) Сделать копию конфигурационного файла:

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

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

sudo nano /etc/samba/smb.conf

и внести изменения в соответствии с требуемыми параметрами (Рисунок 8). В данном случае заданные параметры были указаны в начале статьи.

Рисунок 8
Рисунок 8

Сохранить содержимое файла и выйти.

Параметр browseable = no запрещает явный доступ к каталогам по сети, если его заменить на yes, то папку будет видно в сетевом окружении.

12) Перезапустить службу samba:

sudo systemctl restart smbd nmbd

проверить состояние службы:

sudo systemctl status smbd nmbd

Примечание. Если после перезагрузки сервера служба будет не активна, то необходимо добавить ее в автозагрузку:

sudo systemctl enable smbd nmbd

13) В реальной сети, где количество пользователей достаточно много, необходимо дополнительно снять ограничение на одновременное количество подключаемых пользователей. Для этого нужно открыть файл limits.conf:

sudo nano /etc/security/limits.conf

и дописать в конце файла следующие строки (Рисунок 9):

* - nofile 16384

root - nofile 16384

Рисунок 9
Рисунок 9

14) Проверка доступа к созданным каталогам по сети.

14.1) На компьютере с операционной системой Windows. В случае если browseable = yes, открыть проводник, набрать в адресной строке (Рисунок 10)

\\192.168.0.2

Рисунок 10
Рисунок 10

и нажать клавишу Enter. Система запросит логин и пароль (Рисунок 11).

Рисунок 11
Рисунок 11

После ввода, в зависимости от используемого логина должны появится три или две папки (Рисунок 12).

Рисунок 12
Рисунок 12

Если параметр browseable = no, то в адресной строке нужно указывать еще и имя каталога (например, для каталога f1) (Рисунок 13)

\\192.168.0.2\f1

Рисунок 13
Рисунок 13

и тогда откроется содержимое каталога f1 (Рисунок 14).

Рисунок 14
Рисунок 14

14.2) На компьютере с операционной системой на основе Linux открыть файловый проводник, зайти в другие места и в строке подключения набрать (Рисунок 15):

smb://192.168.0.2

Рисунок 15
Рисунок 15

и нажать кнопку Подключиться (либо в зависимости от графического интерфейса нажать клавишу Enter). Будет открыт доступ к каталогам (Рисунок 16).

Рисунок 16
Рисунок 16

В данном случае для папки f1 параметр browseable = no, поэтому ее явно не видно в сетевом окружении. Если нужно подключится к папке f1, то в адресной строке нужно указывать еще и имя каталога (Рисунок 17).

Рисунок 17
Рисунок 17

Откроется окно для ввода логина и пароля (Рисунок 18).

Рисунок 18
Рисунок 18

После ввода правильных данных откроется содержимое каталога f1 (Рисунок 19).

Рисунок 19
Рисунок 19