Подробный гайд: Монтирование CIFS/SMB через systemd в ALT Linux

Пошаговый гайд по монтированию CIFS/SMB через systemd в ALT Linux. Безопасное хранение паролей, настройка юнитов mount и automount для сетевых папок.

2026.07.02                  


Подробный гайд: Монтирование CIFS/SMB через systemd в ALT LinuxПодробный гайд: Монтирование CIFS/SMB через systemd в ALT Linux Монтирование сетевых ресурсов CIFS/SMB через systemd — это наиболее современный и надежный способ в ALT Linux (и других systemd-ориентированных дистрибутивах). Он позволяет корректно обрабатывать задержки сети при загрузке и использовать автоматическое монтирование по обращению (automount).

Ниже представлен подробный пошаговый гайд.


Шаг 1. Установка необходимых пакетов

Для работы с CIFS в ALT Linux необходимо установить утилиты cifs-utils.

Откройте терминал и выполните:

sudo apt-get update
sudo apt-get install cifs-utils

Шаг 2. Подготовка точки монтирования и файла учетных данных

1. Создайте директорию, куда будет монтироваться ресурс:

sudo mkdir -p /mnt/smb_share

(Важно: имя директории не должно содержать пробелов, либо их нужно будет экранировать в имени юнита systemd, но лучше избегать пробелов).


2. Создайте файл с учетными данными (credentials):

Хранить логин и пароль прямо в конфиге systemd небезопасно.

Создадим отдельный файл:

sudo mkdir -p /etc/samba/credentials
sudo nano /etc/samba/credentials/smb_share

Внесите в него следующие строки:

username=ваш_логин
password=ваш_пароль
# domain=ВАШ_ДОМЕН (если используется доменная авторизация Active Directory)

Сохраните файл (Ctrl+O, Enter, Ctrl+X в nano).


3. Ограничьте права доступа к файлу с паролями:

sudo chmod 600 /etc/samba/credentials/smb_share
sudo chown root:root /etc/samba/credentials/smb_share

Шаг 3. Создание systemd .mount юнита

Systemd использует строгое правило именования для mount-юнитов: путь монтирования /mnt/smb_share превращается в имя файла mnt-smb_share.mount (слэши заменяются на дефисы).


Создайте файл юнита:

sudo nano /etc/systemd/system/mnt-smb_share.mount

Вставьте следующий контент:

[Unit]
Description=Mount SMB Share via systemd
# Ждем полной инициализации сети, а не просто поднятия интерфейса
After=network-online.target
Wants=network-online.target

[Mount]
What=//192.168.1.100/shared_folder
Where=/mnt/smb_share
Type=cifs
# Опции монтирования
Options=credentials=/etc/samba/credentials/smb_share,iocharset=utf8,file_mode=0777,dir_mode=0777,uid=1000,gid=1000,_netdev,vers=3.0
# Таймаут, чтобы не вешать загрузку системы, если сервер недоступен
TimeoutSec=30

[Install]
WantedBy=multi-user.target

Разбор важных параметров Options:

  • credentials=... — путь к файлу с логином/паролем.
  • iocharset=utf8 — корректное отображение кириллицы.
  • file_mode=0777,dir_mode=0777 — права доступа к файлам и папкам (можно поставить 0755 для безопасности).
  • uid=1000,gid=1000 — назначает владельцем файлов вашего пользователя (узнайте свой UID/GID командой id). Без этого файлы будут принадлежать root.
  • _netdevкритически важный параметр. Указывает systemd, что это сетевое устройство.
  • vers=3.0 (или 2.1, 3.1.1) — явное указание версии SMB. Рекомендуется, так как новые версии Samba/Windows отключают старые протоколы (SMB1), и автоматические переговоры иногда дают сбой.

Шаг 4. Создание systemd .automount юнита (Рекомендуется)

Чтобы ресурс монтировался только тогда, когда вы к нему обращаетесь (экономит ресурсы и ускоряет загрузку, если сервер недоступен), создайте automount-юнит.

sudo nano /etc/systemd/system/mnt-smb_share.automount

Вставьте следующий контент:

[Unit]
Description=Automount SMB Share
After=network-online.target

[Automount]
Where=/mnt/smb_share
# Отмонтирует ресурс автоматически, если к нему нет обращений 10 минут (600 сек)
TimeoutIdleSec=600

[Install]
WantedBy=multi-user.target

Шаг 5. Активация и запуск

Теперь нужно перечитать конфигурацию systemd и включить автомонтирование.

Важно:

Если вы используете .automount, вам не нужно включать сам .mount юнит, включается только .automount.

# Перечитываем конфиги systemd
sudo systemctl daemon-reload

# Включаем и сразу запускаем автомонтирование
sudo systemctl enable --now mnt-smb_share.automount

Если вы решили не использовать automount, а монтировать сразу при загрузке, используйте команду: sudo systemctl enable --now mnt-smb_share.mount


Шаг 6. Проверка и диагностика

1. Проверка статуса:

# Если используете automount:
systemctl status mnt-smb_share.automount

# Статус самого монтирования (покажет, примонтировано ли оно в данный момент):
systemctl status mnt-smb_share.mount

2. Проверка доступа:

Попробуйте зайти в папку:

ls -l /mnt/smb_share

При первом обращении automount автоматически запустит .mount юнит и подключит шару.


3. Просмотр логов (если что-то пошло не так):

journalctl -u mnt-smb_share.mount -e

Частые проблемы и их решение (Troubleshooting)

1. Ошибка mount error(112): Host is down

Решение:

Сервер не поддерживает запрошенную версию SMB. Попробуйте добавить в Options параметр vers=2.0 или vers=1.0 (для очень старых NAS/роутеров).


2. Ошибка mount error(13): Permission denied

Решение:

Проверьте логин/пароль в файле credentials. Если используется домен AD, убедитесь, что добавили domain=DOMAIN в файл credentials. Также проверьте, не заблокирован ли доступ на самом сетевом хранилище (права на стороне Windows/Samba).


3. Монтирование не происходит при загрузке, но работает вручную

Решение:

Сетевой интерфейс поднимается дольше, чем systemd пытается смонтировать шару. Убедитесь, что в [Unit] указано After=network-online.target и Wants=network-online.target. В некоторых случаях (например, при использовании NetworkManager) может потребоваться добавить After=NetworkManager-wait-online.service.


4. Кириллические имена файлов отображаются как "кракозябры"

Решение:

Убедитесь, что в Options прописано iocharset=utf8. Если на сервере используется старая кодировка, попробуйте iocharset=cp866 или iocharset=koi8-r.


Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Денис Аверко @Nymexis г. Омск

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта