Как сделать NAS из компьютера с Ubuntu и Samba
Зачем делать NAS на Ubuntu
NAS — сетевое файловое хранилище — упрощает совместную работу и централизованное хранение данных в небольшой сети. Вместо синхронизации файлов между несколькими ПК вы размещаете данные на одном устройстве и даёте к ним доступ по сети. Своё решение на Ubuntu и Samba экономично: вы используете имеющийся компьютер и диски, не покупая отдельный NAS.
Определения в одну строку:
- Samba: средство для предоставления общих файлов и принтеров в сети, совместимое с протоколом SMB/CIFS, используемым Windows и многими другими ОС.
Требования и рекомендации по оборудованию
- Компьютер с Ubuntu (подойдёт десктоп, ноутбук или мини‑ПК).
- Один или несколько дисков — внутренние или внешние USB‑диски.
- Стабильное сетевое подключение. Кабель Ethernet даёт более надёжную и быструю работу, чем Wi‑Fi.
- Минимальные знания администрирования Linux (терминал, права доступа).
Важно: если планируете открывать доступ вне домашней сети, проконсультируйтесь со специалистом по безопасности.
H2: Установка Samba в Ubuntu
- Подключитесь к локальной сети. Желательно — по кабелю.
- Обновите список пакетов и установите Samba через терминал:
sudo apt update
sudo apt install samba- Альтернатива: можно установить через графический менеджер пакетов, например «Synaptic». Откройте «Приложения», найдите «Synaptic Package Manager», затем в нём найдите «samba», отметьте для установки и примените изменения.
- После установки служба Samba обычно запускается автоматически. Проверьте статус:
sudo systemctl status smbdЕсли служба не запущена, включите и запустите её:
sudo systemctl enable --now smbdH2: Подготовка диска и папки для общего доступа
- Подключите внешний диск или выделите папку на системном разделе.
- Создайте отдельную папку для шаринга, чтобы не менять права на системные каталоги:
sudo mkdir -p /srv/nas/shared
sudo chown youruser:youruser /srv/nas/shared
sudo chmod 2770 /srv/nas/sharedЗамените youruser на своё локальное имя пользователя.
- Если диск новый, отформатируйте и смонтируйте его в нужную точку. Пример для диска /dev/sdb1:
sudo mkfs.ext4 /dev/sdb1
sudo mkdir -p /mnt/nas-drive
sudo mount /dev/sdb1 /mnt/nas-drive
sudo chown -R youruser:youruser /mnt/nas-driveЧтобы автоматом монтировалось при загрузке, добавьте строку в /etc/fstab с UUID диска.
H2: Настройка общей папки в Samba
Откройте конфигурационный файл Samba:
sudo nano /etc/samba/smb.confВ конец файла добавьте секцию для вашей общей папки:
[Shared]
path = /srv/nas/shared
browseable = yes
read only = no
valid users = @sambashare
create mask = 0660
directory mask = 2770Смысл полей:
- path — путь до каталога.
- browseable — видимость шара в обзоре сети.
- read only — разрешить запись.
- valid users — список пользователей или группа, которым разрешён доступ.
- create mask / directory mask — права для создаваемых файлов/папок.
Создайте группу для samba и добавьте в неё пользователей:
sudo groupadd sambashare
sudo usermod -aG sambashare youruserДобавьте пользователя Samba (пароль для доступа по SMB):
sudo smbpasswd -a youruserПерезапустите службу:
sudo systemctl restart smbdH2: Подключение к шару с разных ОС
macOS
- Используйте меню «Перейти → Подключиться к серверу» и введите адрес в формате smb://IP-адрес или smb://имя_хоста
Linux
- В файловом менеджере (Nautilus, Dolphin) используйте адрес smb://hostname или smb://192.168.1.10
- В терминале можно смонтировать CIFS:
sudo mount -t cifs //192.168.1.10/Shared /mnt/nas -o username=youruser,uid=1000,gid=1000Windows
- В проводнике в адресной строке или «Подключить сетевой диск» укажите UNC-путь, например \\ubuntu\Shared или \\192.168.1.10\Shared
Примечание: в JSON и некоторых текстовых процессах обратные слэши нужно экранировать; в проводнике Windows записывайте их как есть.
H2: Практические советы и отладка
Проблема: «Не вижу шар в сети»
- Проверьте, работает ли smbd: sudo systemctl status smbd
- Проверьте файрволл: если используется UFW, разрешите Samba: sudo ufw allow samba
- Убедитесь, что NetBIOS/WS‑Discovery доступны в сети. На macOS и Linux помогает пакет Avahi для обнаружения по имени хоста.
Проблема: «Permission denied при монтировании»
- Проверьте права на файловой системе: ls -l /srv/nas/shared
- Убедитесь, что пользователь добавлен в группу valid users
- Посмотрите логи Samba: sudo tail -f /var/log/samba/log.smbd
Особенности AppArmor
- Ubuntu использует AppArmor. Если у Samba проблемы с доступом к /srv/nas, проверьте профиль AppArmor: sudo aa-status
Производительность
- Качество сети и диск влияют на скорость. Для больших файлов используйте проводную сеть и диск с хорошими скоростями записи/чтения.
H2: Безопасность и резервное копирование
- Отключайте гостевой доступ, если в сети есть незнакомые пользователи.
- Используйте отдельные учётные записи Samba для каждого пользователя.
- Делайте регулярные бэкапы важных данных на другой диск или в облако.
- Если подключение идёт через публичный интернет, используйте VPN и не открывайте Samba напрямую в интернет.
H2: Когда Samba не лучший выбор
- Если у вас только Linux‑клиенты и нужны POSIX‑права и атрибуты — NFS может подойти лучше.
- Для удалённого доступа и синхронизации между мобильными устройствами чаще выбирают WebDAV или специализированные решения (Nextcloud).
H2: Примеры тестов и критерии приёмки
Критерии приёмки
- Шар доступен по smb://IP и по имени хоста.
- Пользователь может создать файл и папку, владельцы и права соответствуют настройкам.
- Шар монтируется клиентами macOS, Linux и Windows.
- Нет ошибок в логах smbd при базовых операциях чтения/записи.
Минимальные тесты
- Подключение по IP: попытаться открыть smb://192.168.x.y
- Запись файла и чтение с другого клиента
- Проверка прав доступа: пользователь вне группы не должен писать
- Перезагрузка сервера и проверка автопримонтирования диска
H2: Чеклист для разных ролей
Администратор
- Установить и запустить Samba
- Настроить smb.conf и создать группу sambashare
- Настроить бэкап
- Обеспечить правила фаервола
Домашний пользователь
- Подключить диск и создать папки
- Создать локальных пользователей и задать пароли Samba
- Проверить подключение с основного устройства
H2: Небольшой пример конфигурации Samba
[global]
workgroup = WORKGROUP
server string = Ubuntu NAS
netbios name = ubuntu-nas
security = user
map to guest = Bad User
[Shared]
path = /srv/nas/shared
browseable = yes
read only = no
valid users = @sambashare
create mask = 0660
directory mask = 2770H2: Альтернативные подходы
- Использовать готовый NAS‑дистрибутив (FreeNAS/TrueNAS) на выделённом устройстве — даёт RAID, ZFS, дедупликацию, но требует отдельного железа.
- Nextcloud для синхронизации и удалённого доступа с веб‑интерфейсом.
- NFS для Linux‑только сред с высокой производительностью.
H2: Краткое резюме
Создать простой NAS на Ubuntu с помощью Samba можно быстро: установите Samba, подготовьте папку/диск, настройте smb.conf, добавьте пользователей и проверьте подключение с клиентов. Для продакшн‑решения стоит продумать резервное копирование, безопасность и мониторинг.
Важно
- Не открывайте Samba напрямую в интернет.
- Делайте бэкапы и тестируйте права доступа.
FAQ
Q: Можно ли использовать Windows‑аккаунт для входа в шар Samba? A: Да, при настройке соответствующей аутентификации можно интегрировать Samba с Windows AD, но это более сложная задача и требует дополнительной конфигурации.
Q: Как автоматически монтировать шар на Linux при загрузке? A: Добавьте запись в /etc/fstab с помощью cifs и опций username, password или credentials файл. Пример:
//192.168.1.10/Shared /mnt/nas cifs credentials=/home/youruser/.smbcredentials,uid=1000,gid=1000,iocharset=utf8 0 0Изображение предоставлено Animaster
Похожие материалы
Информация о системе на рабочем столе Windows
Как обновить рабочий стол в Windows 11
Как не дать компьютеру заснуть с Caffeine
Не создаётся новая папка в Windows 10 — решения