Я уже писал про домашний сервер здесь и здесь. Теперь нужно сделать так, чтобы остальные могли подключаться и копировать файлы. А сделаем мы с помощью пакета Samba. Для этого необходимо настроить сетевой диск для доступа и обмена. Приступим!
Диск для всех
И так, для начала необходимо установить некоторые программы. Что ж, сделаем:
apt install -y samba
Этого достаточно чтобы установить сервер, но не достаточно чтобы он заработал. Теперь нужно настроить программу, чтобы она отдавала нам файлы по сети. Для этого выполняем nano /etc/samba/smb.conf и приводим конфигурационный файл примерно к следующему виду:
[global]
workgroup = MYNAS
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
/bin/false %u
usershare allow guests = yes
ntlm auth = yes
[storage]
comment = Share NAS
browsable = yes
path = /mnt/storage
guest ok = yes
read only = no
create mask = 0777
directory mask = 0777
writeable = yes
valid users = user
locking = no
oplocks = yes
strict locking = no
share modes = yes
Здесь я привожу свой пример без комментариев. Данный пример не является истинно верным и не претендует на уникальность. Все что Вам нужно изменить и донастроить Вы можете это сделать. А мы идем дальше…
Теперь нам нужен пользователь, с помощью которого мы буем подключаться к сетевому диску. Для этого создаем его в Samba:
smbpasswd -a user
Перед применением всего этого добра сервер, вероятнее всего, будет ругаться на количество открываемых файлов. Это связано в ограничении. Добавим пару срочек в /etc/security/limits.conf:
* hard nofile 1048576
* soft nofile 1048576
Теперь проверим все ли хорошо:
testparm
И, если все хорошо, перезапустим службу:
systemctl stop smbd && systemctl restart nmbd && systemctl start smbd
systemctl enable smbd && systemctl enable nmbd
Теперь можно подключаться с Windows-компьютера указав адрес \\<адрес Вашего сервера>\storage и ввести логин и пароль пользователя, которого Вы указали.
Клиент на Linux
Тут ничего сложного нет. Для этого создаем директорию:
mkdir -p /mnt/storage
Установим необходимые пакеты:
apt install -y cifs-utils
И в /etc/fstab добавим одну строчку:
//<адрес Вашего сервера>/storage /mnt/storage cifs credentials=/etc/home_store.cred,file_mode=0777,dir_mode=0777,rw 0 0
Затем создаем файл /etc/home_store.cred:
username=<Логин>
password=<Пароль>
И устанавливаем права доступа:
sudo chmod 600 /etc/home_store.cred
Теперь все монтируем:
sudo mount -a
В принципе все.
Еще один сетевой диск
Теперь нам необходимо настроить NFS. Это самая родная сетевая файловая система для Linux. Так как у меня есть второй одноплатник и я на него собираюсь ставить различные приложения, то мне нужно где-то хранить данные. Буду их хранить на сервере с файлами. Можно было бы использовать ту же Samba, но есть некоторые проблемы и ограничения которые отчасти сложно обходить, да и зачем мучиться, если можно сделать все гораздо проще. Продолжим…
Для начала установим все необходимые пакеты на сервер хранилища и сразу его запустим:
apt install -y nfs-common nfs-kernel-server
systemctl start nfs-server && systemctl enable nfs-server
Так как у меня уже есть расшаренная сетевая директория для Samba и я не хочу придумывать другую, то буду использовать ее же. Далее нужно сказать NFS-серверу что мы хотим отдать другим. Для этого редактируем файл /etc/exports (я просто добавил строчку):
/mnt/storage <Адрес клиента, которому разрешено подключаться>(rw,no_root_squash)
И просто перезапускаем сервер:
systemctl restart nfs-server
Клиент другого сетевого диска
На будущем сервер устанавливаем пакет клиента:
apt install -н nfs-common
в /etc/fstab добавляем строчку:
<адрес Вашего NFS-cthdthf>:/mnt/storage/ /mnt/nfs/ nfs rw 0 1
Создаем директорию, к которой будем подключаться:
mkdir -p /mnt/nfs
И монтируем:
mount -a

Как бы всё!
Собственно на этом все. Основа готова. Теперь уже можно что-то дальше наворачивать, так как есть и сервер для хранения данных и сервер для обработки каких-либо данных. Да, это не самолет с реактивным двигателем, но какие-то домашние задачи вполне можно решать.