Вопрос или проблема
У меня есть новый NAS от Synology (DS1621+), и я начал интеграцию его в свою домашнюю сеть. У меня возникли некоторые проблемы с его использованием на моих Linux-узлах. Я могу примонтировать NAS, но разрешения (как их видит Linux) не такие, какие я хочу. У меня есть впечатление, что собственность и разрешения могут быть “отображены” с NAS на мои Linux-клиенты, но мне неясно, как это делается. Все мои Linux-узлы основаны на Debian, а файловые службы, предоставляемые NAS от Synology, осуществляются через SMB. В Linux я использую cifs-utils suite (mount -t cifs ...
) для монтирования разделов.
Я связался с Synology и был удивлен узнать:
1: Synology не предоставляет техническую поддержку пользователям “командной строки”.
2: Synology утверждала, что их реализация SMB является проприетарной и не предоставляет никакой (полезной) документации по интерфейсу.
Я подозреваю, что реализация Synology не так далека от мейнстрима, но после некоторых проб и ошибок у меня по-прежнему есть “проблемы с разрешениями”. Также в руководстве mount.cifs
много параметров, чье назначение и эффект пока неясны мне.
Существуют ли какие-либо инструменты для Linux, которые могут помочь определить, как различные параметры и параметры в mount.cifs
влияют на разрешения с точки зрения клиента Linux? Я хотел бы исключить как можно больше проб и ошибок.
Я заинтересован в использовании SMB вместо NFS, потому что слышал больше негативного о NFS, чем о SMB.
Я создал пользователей на стороне Synology и добавил их в конфигурацию SMB там.
ИЗМЕНЕНИЕ: 2022-07-12; Дополнительное чтение, результаты
Переменные, которые, похоже, играют роль, это:
- состояние реализации Linux “Unix Extensions” для SMB и версия на моем клиентском компьютере
- состояние реализации сервера (Synology) SMB/Samba
- состояние реализации сервера (Synology) “Unix Extensions”
В попытке улучшить качество этого вопроса я попытался определить эти переменные в контексте моего вопроса:
- Что касается состояния реализации Linux “Unix Extensions”:
$ mount.cifs --version
mount.cifs версия: 6.11
# ЗАМЕТКА1: Unix Extensions включены по умолчанию согласно man mount.cifs
# ЗАМЕТКА2: см. также 'modinfo cifs'
- Что касается версии SMB/Samba сервера (Synology):
$ ssh admin@SynologyNAS-1
/$ samba --version
Версия 4.10.18
/$ uname -srm
Linux 4.4.180+ x86_64
-
Что касается версии сервера (Synology) “Unix Extensions”
Я не знаю, как это сделать, поэтому я попробовал
smbclient
:
$ smbclient \\\\SynologyNAS\\rpi_share -U=pi
Введите пароль WORKGROUP\pi:
Попробуйте "help", чтобы получить список возможных команд.
smb: \> help
? allinfo altname archive backup
blocksize cancel case_sensitive cd chmod
chown close del deltree dir
du echo exit get getfacl
geteas hardlink help history iosize
lcd link lock lowercase ls
l mask md mget mkdir
more mput newer notify open
posix posix_encrypt posix_open posix_mkdir posix_rmdir
posix_unlink posix_whoami print prompt put
pwd q queue quit readlink
rd recurse reget rename reput
rm rmdir showacls setea setmode
scopy stat symlink tar tarmode
timeout translate unlock volume vuid
wdel logon listconnect showconnect tcon
tdis tid utimes logoff ..
!
smb: \> ? posix
ПОМОЩЬ posix:
включить все возможности POSIX
smb: \> posix
Сервер не поддерживает UNIX CIFS расширения.
smb: \> ? chmod
ПОМОЩЬ chmod:
<src> <mode> установить права на файл с использованием UNIX разрешений
smb: \> chmod test-touch-4B.txt 666
Сервер не поддерживает вызовы UNIX CIFS.
...
2022-07-12; Выводы & Пересмотренные вопросы?
Вышеуказанные результаты с smbclient
предполагают, что с точки зрения SMB/CIFS мое клиентское программное обеспечение соответствует требованиям, но мой новый NAS от Synology далеко отстает.
Мой изначальный вопрос теперь становится: “Эти результаты точны; есть ли более убедительный или точный метод для определения статуса продукта, когда производитель отказывается предоставлять любую информацию о нем?”
Для тех, у кого есть аналогичные вопросы, я могу только предложить следующее:
В моем случае: Я
mount
с помощью учетных данных пользователя Synologypi
. Это оставляет моего пользователя Linuxpi
неспособным записывать в смонтированный раздел – несмотря на то, что пользователю Synologypi
были даны права на чтение и запись в Synology DSM. Я обнаружил, что добавление опцийuid=pi
иgid=pi
к моей командеmount -t cifs
как минимум позволяет пользователю Linuxpi
записывать в раздел SMB на сервере Synology. Почему это работает, я должен оставить на усмотрение других.
Дополнительное чтение:
- Википедия о UNIX Extensions для SMB
- CIFS VFS – Протокольные расширения для общих интернет-файловых систем для улучшения семантики POSIX I/O
- Поиск: что такое “Unix Extensions” для SMB/CIFS/Samba?.
- Версия Samba 4.3 или новее поддерживает SMB 3.1.1
- Почтовый список linux cifs
mount.cifs
иmount.smb3
являются почти одинаковыми; см.man mount.cifs
, который также является руководством дляmount.smb3
.- Википедия о SMB3-Linux
- Совпадают ли SMB POSIX Extensions с Unix Extensions?… Похоже, что нет
- Обновление расширений протокола CIFS, fm 2006 (это заняло
ГОДЫ
на разработку) - Обзор расширений протокола CIFS и клиента Linux CIFS, fm. 2008.
- Фаза 2 расширений SMB3 POSIX … что дальше? (fm. 2020)
- Видео по пункту 10 выше
- Руководство пользователя и администратора ядра Linux » CIFS (примечание: больше текста от Стива Френча)
- Что такое протокол SMB и почему он вызывает беспокойство по поводу безопасности?
- Server Message Block – Википедия
Ответ или решение
Проблемы NAS с SMB/CIFS: Как «видеть» клиент-серверное взаимодействие
Введение
Интеграция нового NAS-сервера на базе Synology (DS1621+) в домашнюю сеть может выглядеть просто, однако некоторые пользователи сталкиваются с проблемами, особенно при взаимодействии с Linux-хостами. Основные сложности связаны с управлением правами доступа и настройкой конфигурации SMB. В данной статье мы рассматриваем, как диагностировать и решать проблемы, связанные с правами доступа через SMB/CIFS, и как эффективно «видеть» сообщения между клиентом и сервером.
Основные проблемы
На первый взгляд, вы можете подключить ваш Synology NAS по протоколу SMB, используя пакет cifs-utils
, но по умолчанию права и владение файлами могут работать некорректно. При этом, как вы заметили, Synology не предоставляет документацию для продвинутых пользователей.
Основные факторы, которые могут влиять на проблемы с правами доступа:
- Использование расширений UNIX в SMB: Все ли необходимые расширения поддерживаются на стороне сервера и клиента?
- Версии SMB/CIFS: Убедитесь, что у вас актуальная версия SMB на NAS и клиенте.
- Настройки пользователя и группы: Корректно ли настроены права доступа и соответствие пользователей на обеих сторонах?
Шаги по диагностике и решению проблем
1. Проверка конфигурации клиента
Для начала убедитесь, что на вашей Linux-машине установлены и обновлены cifs-utils
. Выполните следующую команду:
mount.cifs --version
Проверьте, что у вас установлена версия 6.11 или выше, так как поддержка расширений UNIX включена по умолчанию.
2. Проверка конфигурации сервера
Чтобы проверить версию Samba на вашем Synology NAS, выполните:
ssh admin@SynologyNAS-1
samba --version
uname -srm
Убедитесь, что ваш сервер поддерживает необходимые версии протокола.
3. Настройка параметров монтирования
При монтировании используйте ключи uid
и gid
, чтобы строго обозначить, какие пользователи и группы должны управлять файлами. Пример команды монтирования:
sudo mount -t cifs //SynologyNAS/rpi_share /mnt/share -o username=pi,password=yourpassword,uid=pi,gid=pi,file_mode=0775,dir_mode=0775
Этот подход позволит вам избежать проблем с правами при наличии пользовательских настроек на Synology.
4. Диагностика взаимодействия
Чтобы «увидеть» сообщения, отправляемые между клиентом и сервером, вы можете использовать инструменты для захвата сетевого трафика, такие как Wireshark
или tcpdump
. Применение фильтра smb
поможет вам отслеживать конкретные вызовы к серверу. Пример команды для tcpdump
:
sudo tcpdump -i any -s 0 -w smb_traffic.pcap port 445
Файл smb_traffic.pcap
можно проанализировать в Wireshark, чтобы увидеть взаимодействие между клиентом и сервером более подробно.
Выводы
Решение проблем с SMB/CIFS на Synology NAS требует комплексного подхода: от настройки на стороне клиента до диагностики сетевого взаимодействия. Ключевыми моментами являются правильная конфигурация прав доступа, совместимость версий SMB и использование подходящих инструментов диагностики.
Использование команд для монтирования с корректными параметрами и диагностика трафика между клиентом и сервером помогут вам не только устранить текущие проблемы, но и лучше понять, как функционирует ваш NAS в рамках локальной сети. Для дальнейшего изучения рекомендуем ознакомиться с документацией по Samba и CIFS.