Подробный гайд по опциям -o sec=ntlmssp,uid=1000,gid=1000 при монтировании SMB/CIFS

Разбор опций монтирования SMB/CIFS в Linux: sec=ntlmssp выбирает NTLM-аутентификацию, uid и gid задают владельца и группу файлов.

2026.09.02                  


Подробный гайд по опциям -o sec=ntlmssp,uid=1000,gid=1000 при монтировании SMB/CIFSПодробный гайд по опциям -o sec=ntlmssp,uid=1000,gid=1000 при монтировании SMB/CIFS

Когда вы монтируете сетевую папку Windows (SMB/CIFS) в Linux, вы часто видите команды вида:

mount -t cifs //server/share /mnt/point -o username=user,password=pass,sec=ntlmssp,uid=1000,gid=1000

Здесь после -o перечислены опции монтирования. Разберём подробно, что означают sec=ntlmssp, uid=1000 и gid=1000, зачем они нужны и как правильно их использовать.


1. Что такое sec=ntlmssp?

  • sec — это опция, задающая режим безопасности (security mode) для аутентификации на SMB-сервере. Она определяет, какой протокол будет использоваться для проверки подлинности пользователя.



  • ntlmssp — это NTLM Security Support Provider, одна из реализаций протокола NTLM (NT LAN Manager). NTLM — семейство протоколов аутентификации Microsoft, которые использовались в старых версиях Windows и до сих пор поддерживаются для обратной совместимости.


Когда применять sec=ntlmssp?

  • Если сервер не настроен на Kerberos (например, обычный домашний NAS или старая версия Windows).
  • Если вы подключаетесь к серверу по IP-адресу, а не по доменному имени, Kerberos часто не работает, и приходится использовать NTLM.
  • Если в вашей сети нет контроллера домена Active Directory, Kerberos недоступен.
  • Если вы получаете ошибки вида mount error(13): Permission denied или mount error(126): Required key not available при использовании стандартных настроек.

Другие возможные значения sec:

Значение Описание
krb5 Использовать Kerberos (требует настройки билетов, обычно kinit).
krb5i Kerberos с проверкой целостности (подпись).
ntlm Устаревший NTLM (не рекомендуется, слабая защита).
ntlmv2 NTLMv2 — улучшенная версия NTLM (более безопасная, чем ntlm).
ntlmssp NTLM Security Support Provider — современная реализация NTLM, включающая NTLMv2 и согласование. Рекомендуется для совместимости.
none Анонимный доступ (гость).

На практике ntlmssp — хороший выбор, когда Kerberos не настроен, а сервер принимает NTLM-аутентификацию. Он поддерживает согласование версии NTLM и считается достаточно безопасным (если пароль надёжный).


2. Что такое uid=1000 и gid=1000?

CIFS/SMB не хранит информацию о владельцах файлов в стиле Unix (UID/GID). Поэтому при монтировании Linux назначает всем файлам и каталогам на сетевом диске одного владельца и одну группу. По умолчанию это root (UID=0), что может быть неудобно: обычный пользователь не сможет записывать файлы, а права будут слишком строгими.

Опции uid и gid позволяют задать конкретного пользователя и группу, которым будут принадлежать все файлы в смонтированной точке.

  • uid=1000 — все файлы будут принадлежать пользователю с идентификатором 1000.
  • gid=1000 — все файлы будут принадлежать группе с идентификатором 1000.

Почему именно 1000?

В большинстве дистрибутивов Linux первый созданный при установке пользователь получает UID=1000 и GID=1000. Проверить свои идентификаторы можно командой:

id

Вывод покажет что-то вроде uid=1000(имя) gid=1000(имя) groups=.... Если вам нужно, чтобы к файлам имели доступ несколько локальных пользователей, можно указать другую группу (например, gid=100 — группа users).


Влияние на права доступа

После монтирования с указанными uid и gid вы сможете:

  • Читать и записывать файлы как пользователь с UID 1000.
  • Другие пользователи получат доступ в соответствии с общими правами (обычно rwxr-xr-x или как задано через file_mode и dir_mode).

Если не указать uid/gid, владельцем станет root, и обычному пользователю придётся использовать sudo для записи.


3. Пример использования в команде mount

Полная команда монтирования может выглядеть так:

sudo mount -t cifs //192.168.1.100/Public /mnt/nas -o username=myuser,password=mypass,sec=ntlmssp,uid=1000,gid=1000

Здесь:

  • -t cifs — тип файловой системы.
  • //192.168.1.100/Public — адрес сервера и имя общей папки.
  • /mnt/nas — локальная точка монтирования (должна существовать).
  • -o — опции, разделённые запятыми:
    • username=myuser — имя пользователя на SMB-сервере.
    • password=mypass — пароль.
    • sec=ntlmssp — протокол безопасности.
    • uid=1000 и gid=1000 — владелец файлов.



Примечание:

Указывать пароль в командной строке небезопасно (виден в истории). Лучше использовать файл с учётными данными или вводить пароль интерактивно (просто опустите password=..., тогда mount спросит).


4. Добавление в /etc/fstab для автоматического монтирования

Чтобы сетевая папка монтировалась при загрузке, добавьте строку в /etc/fstab:

//192.168.1.100/Public /mnt/nas cifs username=myuser,password=mypass,sec=ntlmssp,uid=1000,gid=1000 0 0

Для безопасности пароль можно вынести в отдельный файл, доступный только root:

//192.168.1.100/Public /mnt/nas cifs credentials=/etc/samba/credentials,sec=ntlmssp,uid=1000,gid=1000 0 0

Файл /etc/samba/credentials:

username=myuser
password=mypass
domain=WORKGROUP   # если нужно

Не забудьте:

sudo chmod 600 /etc/samba/credentials

После изменения /etc/fstab выполните sudo mount -a, чтобы проверить.


5. Дополнительные полезные опции

  • file_mode=0644,dir_mode=0755 — задают права на файлы и каталоги, если стандартные не подходят (по умолчанию определяются на основе uid/gid и umask).
  • vers=3.0 (или 2.0, 2.1, 3.1.1) — указывает версию протокола SMB. Иногда сервер не поддерживает новые версии, и нужно явно указать старую, например vers=2.0 для старых NAS.
  • iocharset=utf8 — для корректного отображения имён файлов с не-ASCII символами.
  • nounix — отключает расширения Unix (часто нужно для совместимости).
  • noperm — отключает проверку прав на клиенте, полагаясь на сервер (может решить проблемы с доступом).

Пример с дополнительными опциями:

sudo mount -t cifs //server/share /mnt/share -o credentials=/etc/cifs-credentials,sec=ntlmssp,uid=1000,gid=1000,file_mode=0664,dir_mode=0775,vers=3.0

6. Возможные проблемы и их решение

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

  • Проверьте правильность имени пользователя и пароля.
  • Убедитесь, что у пользователя есть права на доступ к шаре.
  • Попробуйте явно указать sec=ntlmssp или sec=ntlmv2.
  • Добавьте domain=WORKGROUP (или имя вашего домена).
  • Укажите vers=2.0 или vers=1.0, если сервер старый.

Ошибка mount error(126): Required key not available

Часто возникает при попытке использовать Kerberos без настроенных билетов. Решение: использовать sec=ntlmssp.

Файлы принадлежат root, а не нужному пользователю

Вы забыли указать uid и gid. Добавьте их.

Не удаётся записать файлы, хотя права вроде бы есть

Проверьте, что вы монтировали с правильными uid/gid. Также убедитесь, что на сервере у пользователя есть права на запись в эту шару.

Монтирование работает, но имена файлов с русскими буквами отображаются некорректно

Добавьте iocharset=utf8.


7. Альтернативы ntlmssp

Если ваша сеть построена на Active Directory и настроен Kerberos, лучше использовать sec=krb5. Это более безопасно и не требует передачи хэшей паролей.

Пример:

kinit user@DOMAIN.LOCAL
sudo mount -t cifs //server/share /mnt/share -o sec=krb5,uid=1000,gid=1000

Если сервер поддерживает только старые версии SMB, возможно, придётся использовать sec=ntlm или sec=ntlmv2 (менее безопасно, но иногда необходимо).


Важно

Опции -o sec=ntlmssp,uid=1000,gid=1000 при монтировании CIFS/SMB означают:

  • Использовать протокол аутентификации NTLMSSP (подходит для большинства не-доменных сред).
  • Назначить всем файлам владельца с UID 1000 и группу с GID 1000 (обычно ваш первый пользователь в Linux).

Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


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

Комментарии

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