Ubuntu. Монтирование сетевой папки
05.01.2026
Теги: fstab • Linux • mount • Systemd • Ubuntu • Директория • Конфигурация • Настройка • Установка • Файл • ФайловаяСистема
Монтирование сетевой папки — это процесс подключения удаленного ресурса (папки на другом компьютере или сервере) к локальной файловой системе так, чтобы операционная система видела его как обычный локальный диск или каталог. Это позволяет работать с сетевыми файлами точно так же, как с документами на своем жестком диске.
1. Установка пакета cifs-utils
Пакет есть в стандартных репозиториях Ubuntu
$ sudo apt update $ sudo apt install cifs-utils
2. Создание точки монтирования
Это локальная директория, в которую будет смонтирована сетевая папка — как правило, внутри /mnt или /media.
$ sudo mkdir /mnt/winshare
3. Сбор необходимой информации
Для монтирования потребуется информация
- IP-адрес или имя Windows-компьютера — например,
192.168.1.100илиDESKTOP-PC - Имя сетевой папки на Windows-компьютере — например,
DocumentsилиPublic - Логин и пароль — учетная запись пользователя Windows, у которого есть доступ к этой папке
- Домен (опционально) — если компьютер находится в домене Active Directory. Для обычных домашних сетей часто используется
WORKGROUP.
4. Временное монтирование (для проверки)
Это самый простой способ, но он небезопасен, так как пароль будет виден в истории команд
$ sudo mount -t cifs -o username=evgeniy,password=qwerty //192.168.1.100/Documents /mnt/winshare
Чтобы предоставить права на папку текущему пользователю Linux — добавим опции uid и gid
$ sudo mount -t cifs -o username=evgeniy,password=qwerty,uid=$(id -u),gid=$(id -g) //192.168.1.100/Documents /mnt/winshare
После выполнения команды содержимое сетевой папки появится в /mnt/winshare.
5. Безопасное и постоянное монтирование
Чтобы не хранить пароль в открытом виде — нужно создать файл с логином и паролем
1. Создать файл для учетных данных
$ sudo nano /etc/win-user
username=ЛОГИН password=ПАРОЛЬ domain=WORKGROUP
Заменить WORKGROUP на имя домена, если это необходимо.
2. Безопасные права на этот файл, чтобы его мог читать только root
$ sudo chmod 600 /etc/win-user
3. Автоматическое монтирование при загрузке системы
Открыть файл /etc/fstab для редактирования
$ sudo nano /etc/fstab
Добавить в конец файла следующую строку
//ip-address/folder /mnt/winshare cifs credentials=/etc/win-user,uid=1000,gid=1000,iocharset=utf8,_netdev 0 0
Использованные опции
credentials=/etc/win-user— указывает путь к файлу с логином и паролемuid=1000,gid=1000— устанавливает владельцем файлов основного пользователя (обычно его ID=1000)iocharset=utf8— обеспечивает корректное отображение имен файлов с кириллицей_netdev— это сетевое устройство, нужно монтировать только после того, как поднимется сеть
4. Проверить правильность монтирования без перезагрузки
Сначала размонтировать папку, если она была смонтирована ранее
$ sudo umount /mnt/winshare
Затем выполнить команду, которая использует файл /etc/fstab
$ sudo mount -a
Если команда выполнилась без ошибок — проверить содержимое папки /mnt/winshare. Теперь сетевая папка будет монтироваться автоматически при каждой загрузке системы.
6. Альтернатива — монтирование Systemd
В современных дистрибутивах Linux, Systemd является стандартной системой инициализации. Она предоставляет более гибкий и надежный механизм для управления точками монтирования, особенно для сетевых ресурсов. Для этого используются два типа юнитов — .mount и .automount.
.mount— описывает, что и куда монтировать, это прямой аналог строки в/etc/fstab. Монтирование происходит при загрузке системы (или при ручном запуске юнита)..automount— описывает точку монтирования, которая будет активирована «по требованию». Папка не монтируется при загрузке, это произойдет только в момент обращения к этой папке. Через некоторое время бездействия папка будет автоматически размонтирована.
Этот подход (использование .automount) является предпочтительным для сетевых ресурсов, так как он не замедляет загрузку системы, если сеть недоступна, и более устойчив к временным сбоям сети.
1. Создание юнитов Systemd
Нужно создать два файла в директории /etc/systemd/system/. Имена файлов должны соответствовать пути к точке монтирования. Для папки /mnt/winshare имена будут mnt-winshare.mount и mnt-winshare.automount.
Создаем файл юнита mnt-winshare.mount
$ sudo nano /etc/systemd/system/mnt-winshare.mount
[Unit] Description = Mount Windows Share Requires = network-online.target After = network-online.target [Mount] What = //192.168.1.100/Documents Where = /mnt/winshare Type = cifs Options = credentials=/etc/win-user,uid=1000,gid=1000,iocharset=utf8,vers=3.0 DirectoryMode = 0755 FileMode = 0644 [Install] WantedBy = multi-user.target
- Директива
After=network-online.target— современный и более надежный аналог опции_netdev. Юнит будет запущен только после того, как сеть станет полностью доступна. - Директива
Options— задает те же опции монтирования, как в/etc/fstab. Опцияvers=3.0рекомендуется для подключения к современным версиям Windows.
Создаем файл юнита mnt-winshare.automount
$ sudo nano /etc/systemd/system/mnt-winshare.automount
[Unit] Description = Automount Windows Share [Automount] Where = /mnt/winshare TimeoutIdleSec = 300 [Install] WantedBy = multi-user.target
- Директива
Where=/mnt/winshareуказывает, за какой директорией нужно «следить». - Директива
TimeoutIdleSec=300указывает, что сетевая папка будет автоматически размонтирована после 300 секунд (5 минут) бездействия, это экономит ресурсы.
2. Назначение юнитов Systemd
Юнит .automount — это «слушатель» или «диспетчер», его задача — следить за точкой монтирования (папкой /mnt/winshare). Когда происходит обращение к этой папке, он активирует соответствующий .mount юнит.
Юнит .mount — это «исполнитель», он содержит все инструкции о том, что и как монтировать. Этот юнит не запускается сам по себе, ему нужен сигнал от юнита .automount о необходимости выполнить монтирование.
Добавлять в автозагрузку (systemctl enable) нужно только .automount юнит. При добавлении в автозагрузку юнита .mount — теряется смысл существования юнита .automount.
Systemd устроен так, что при активации mnt-winshare.automount он будет знать, что для выполнения работы ему нужно запустить mnt-winshare.mount. Эта связь устанавливается автоматически по совпадению имен.
3. Монтирование по требованию
Перезагрузить конфигурацию Systemd
$ sudo systemctl daemon-reload
Включить и запустить .automount юнит
$ sudo systemctl enable --now mnt-winshare.automount
enable— добавляет юнит в автозагрузку--now— запускает немедленно, без перезагрузки
Теперь, при выполнении команды ls /mnt/winshare — Systemd перехватит это обращение, автоматически запустит mnt-winshare.mount и покажет содержимое сетевой папки. Если не трогать эту папку 5 минут — она будет размонтирована.
7. Сравнение /etc/fstab и Systemd
Для монтирования локальных дисков /etc/fstab остается простым и удобным решением. Однако для сетевых файловых систем, особенно на ноутбуках или при нестабильном соединении, использование связки mount + automount юнитов Systemd является более современным, гибким и надежным подходом.
- Установка OpenVPN на Ubuntu 18.04 LTS. Часть 11 из 12
- Настройка SFTP-сервера в Ubuntu 18.04 LTS
- Монтирование NFS на сервере Ubuntu 18.04 LTS
- Ubuntu. Автоматическое обновление
- Ubuntu. Создание юнита для Systemd
- Установка WireGuard на Ubuntu 20.04 LTS. Часть вторая из двух
- Установка WireGuard на Ubuntu 20.04 LTS. Часть первая из двух
Поиск: cifs-utils • fstab • Linux • mount • Systemd • Ubuntu • Настройка • Установка • Файловая система