2012-06-26 23:58:20

Windows Ошибка 1219

Windows Samba

Речь пойдет об ошибке подключения к сетевому ресурсу в windows, а именно:

Множественное подключение к серверу или разделяемым ресурсам одним пользователем с использованием более одного имени пользователя не разрешено. отключите все предыдущие подключения к серверу или разделяемым ресурсам и повторите...

Возникает она в случае, если вы подключены к общему ресурсу с одними учетными данными и пытаетесь подключиться к другому ресурсу на том же сервере но с другими учетными данными, а сервер (в моем случае Samba) настроен в режиме security = USER.

Немного подробнее о security = USER

Пример security устанавливает "security mode bit" в репликах к smbd в момент согласования протокола, тем самым включая или отключая режим безопасности. Клиенты, основываясь на этой информации, определяют нужно ли (и если да то как) передавать серверу имя пользователя и пароль.

При security = USER, клиент должен сначала произвести вход (logon), с существующим именем пользователя и паролем (имя может быть транслировано с помощью параметра username map). Шифрованные пароли (см. encrypted passwords) также могут быть использованы в этом режиме.

Заметьте, что имя запрошенного ресурса не будет послано серверу до тех пор, пока сервер не аутентифицирует клиента. Именно поэтому гостевые учетки не работают в режиме USER, не позволяя серверу преобразовывать неопознанных пользователей в гостей.

Есть одна ошибка в Windows для рабочих групп (Windows for Workgroups, WfWg), которая имеет отношение к этому параметру. При работе в режиме USER или SERVER, клиенты Windows для рабочих групп игнорируют имя пользователя и пароль, указываемые в диалоге для доступа к ресурсу. "Благодаря" этому практически невозможно присоединиться к сервису Samba пользователем, отличным от того, с правами которого произведен вход в Windows.

Решение проблемы

Гениально простое решение предлагает нам M$: подключиться к серверу не по имени, а по IP. Действительно просто и замечательно работает :)


Итак мы подключены к \\server\share1 под именем user1 и хотим подключиться к \\server\share2 как user2. Для этого заходим на сервер по IP, например \\192.168.0.1\share2 и подключаемся как user2. Все прекрасно работает.

Этого вполне достаточно для того чтобы зайти на не доступный пользователю ресурс под админом. Если требуется более 2 юзеров при доступе к серверу, то стоит подумать о security = SHARE в самбе или о способе 2 от M$ - создать в DNS алиасы для сервера и ходить к нему под разными именами.

Ссылки на использованные материалы: