\\host.example.com\ShareName\Tail\Components
|______________| |_______| |_____________|
host share tail
Я могу найти множество ресурсов в хвостовом компоненте пути UNC, и я предполагаю, что компонент хоста следует правилам DNS в отношении чувствительности к регистру, но как насчет имени общего ресурса?
Когда вы подключаетесь только к хосту, не указывая имя общего ресурса, реализация, к которой вы подключаетесь, может отправить вам правильный регистр общего ресурса. Когда вы подключаетесь напрямую к общему ресурсу, как будет обрабатываться дело?
Я мог видеть только одну строчку в руководстве по Samba, в которой говорится, что «Имена разделов и параметров не чувствительны к регистру», что на самом деле не говорит ни о каком другом (имена разделов используются для создания общих ресурсов, но подключение к этому ресурсу может быть обработано по-другому). Я не вижу упоминания о случае в справке по общим папкам Windows.
Означает ли это, что имена общих ресурсов де-факто нечувствительны к регистру, и никто никогда не думал делать это явным, или может кто-нибудь указать мне на документацию?
Редактировать:
В соответствии с Спецификация Microsoft SMB2:
Сервер ДОЛЖЕН проанализировать поле Buffer, как указано в разделе 2.2.49 [MS-DTYP], чтобы извлечь компоненты имени хоста и общего имени. Если поле Buffer не соответствует формату, указанному в разделе 2.2.9, сервер ДОЛЖЕН отклонить запрос с STATUS_INVALID_PARAMETER. В противном случае сервер ДОЛЖЕН предоставить кортеж <hostname, sharename>, проанализированный из сообщения запроса, чтобы вызвать событие, указанное в разделе 3.1.6.8 [MS-SRVS], для нормализации имени хоста путем разрешения псевдонимов сервера и оценки области общего ресурса. Сервер ДОЛЖЕН использовать <normalized hostname, sharename> для поиска общего ресурса в ShareList. Если общий ресурс с совпадающим именем общего ресурса и именем сервера не найден, сервер ДОЛЖЕН отклонить запрос с STATUS_BAD_NETWORK_NAME.
Таким образом, нет нормализации имени общего ресурса, и я не могу найти ничего, что заявляет, что соответствующая реализация должна выполнять сопоставление без учета регистра.
В идеале я ищу документацию или ответ от кого-то, кто тестировал это на нескольких реализациях, помимо Windows и Samba, обсуждающих свои выводы.
Имена общих ресурсов SMB не чувствительны к регистру. Вы можете подтвердить это, попытавшись создать два общих ресурса с одинаковым именем и разным регистром. Система этого не допустит.