Файловый сервер (samba-server) используется для организации файлового обмена и контролируемого доступа к общим каталогам (папкам) по локальной сети.
В приведенном примере установка службы будет осуществляться на втором сервере (Рисунок 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).
Выбрать пункт Создать. Тип диска VDI – Динамический виртуальный жесткий диск – 5ГБ, после создания вернутся в окно Выбора жесткого диска. После этого появится созданный диск, выбрать его (Рисунок 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
Сохранить изменения в конфигурационном файле, перезагрузить сервер и проверить куда смонтирован диск (Рисунок 5).
Более подробно порядок выполнения рассмотрен в статье:
а также в видеоролике:
5) Установить службу samba:
sudo apt install samba
6) Создать трех пользователей:
sudo useradd user1
sudo useradd user2
sudo useradd user3
Проверку созданных пользователей можно осуществить при помощи команды (Рисунок 6):
sudo cat /etc/passwd | grep user
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
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). В данном случае заданные параметры были указаны в начале статьи.
Сохранить содержимое файла и выйти.
Параметр 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
14) Проверка доступа к созданным каталогам по сети.
14.1) На компьютере с операционной системой Windows. В случае если browseable = yes, открыть проводник, набрать в адресной строке (Рисунок 10)
\\192.168.0.2
и нажать клавишу Enter. Система запросит логин и пароль (Рисунок 11).
После ввода, в зависимости от используемого логина должны появится три или две папки (Рисунок 12).
Если параметр browseable = no, то в адресной строке нужно указывать еще и имя каталога (например, для каталога f1) (Рисунок 13)
\\192.168.0.2\f1
и тогда откроется содержимое каталога f1 (Рисунок 14).
14.2) На компьютере с операционной системой на основе Linux открыть файловый проводник, зайти в другие места и в строке подключения набрать (Рисунок 15):
smb://192.168.0.2
и нажать кнопку Подключиться (либо в зависимости от графического интерфейса нажать клавишу Enter). Будет открыт доступ к каталогам (Рисунок 16).
В данном случае для папки f1 параметр browseable = no, поэтому ее явно не видно в сетевом окружении. Если нужно подключится к папке f1, то в адресной строке нужно указывать еще и имя каталога (Рисунок 17).
Откроется окно для ввода логина и пароля (Рисунок 18).
После ввода правильных данных откроется содержимое каталога f1 (Рисунок 19).