Samba + Windows: разрешить несколько подключений от разных пользователей?


23

У меня есть машина под управлением Ubuntu с Samba, которую я использую для обмена данными с компьютерами Windows моей семьи в нашей локальной сети. В настоящее время они имеют доступ к общей папке для фильмов / музыки / и т. Д. С одним пользователем.

Я хочу подключить их к другому общему ресурсу от имени другого пользователя (например, пользователя «goytacaz»).

Когда я пытаюсь подключиться к этому новому общему ресурсу, Windows выдает «Ошибка 1219» и жалуется на множественные подключения одного и того же пользователя.

Как заставить мой компьютер принимать несколько подключений одним и тем же пользователем?


Вы просто хотите подключиться с помощью Samba? Самба уже поддерживает этот AFAIK.
тяжело

Ответы:


24

Над самбой? Там не должно быть никаких проблем; если имя пользователя и пароль верны, оба соединения должны выполняться правильно.

Обновление: re: "Ошибка 1219". Это ошибка на стороне клиента - Windows позволяет одновременно подключаться к серверу только как один пользователь. (См. Документацию Microsoft на KB938120 .) Это означает, что машина Windows уже подключилась как другой пользователь, и поэтому ваши попытки подключиться снова, как правильный пользователь, терпят неудачу.

Вам необходимо отключить первое соединение, прежде чем вы сможете восстановить соединение. Есть два способа сделать это:

  • Отключите все сетевые диски для повторного подключения при входе в систему от этого сервера. Перезагружать. Подключитесь к серверу и убедитесь, что вы указали правильное имя пользователя и пароль.

  • Используйте команду net use / delete из командной оболочки Windows (Пуск -> Выполнить -> cmd; в командной строке введите команду; может потребоваться указать имя общего ресурса).

Обновление 2: если пользователи уже подключаются к серверу с одним пользователем, вы не сможете разрешить им подключаться ко второму пользователю. Вам придется пересмотреть свою стратегию совместного использования и перенастроить Samba, чтобы следовать этой стратегии. (Это не ваша вина; я виню Windows.)

Лично я хотел бы придерживаться отдельных пользователей для каждого человека и рассмотреть возможность использования групп для контроля доступа к общим ресурсам. Это хорошо работает, если у вас есть общие папки, к которым у всех есть права на чтение и запись, и другие, которые вы хотите, чтобы они были доступны только для чтения для всех, кроме нескольких избранных пользователей.

Обновление 3: Документ MS, указанный выше, предлагает эти два обходных пути, позволяющие подключаться к серверу как отдельные пользователи. Основная идея заключается в том, чтобы заставить Windows думать, что она подключается к другому серверу, используя другое имя .

  1. Используйте IP-адрес сервера при подключении со вторым именем пользователя. (Используйте \\ServerName\sharenameпри подключении в качестве первого пользователя, но используйте \\X.X.X.X\sharenameпри подключении в качестве второго пользователя.)

  2. Создайте один или несколько псевдонимов DNS для сервера, который будет использоваться при подключении со вторым (третьим, четвертым ...) именем пользователя. (Используйте \\ServerName\sharenameпри подключении в качестве первого пользователя, но используйте \\ServerAlias1\sharenameпри подключении в качестве второго пользователя, \\ServerAlias2\sharenameпри подключении в качестве третьего пользователя и т. Д.)


1
Спасибо за этот ответ. У меня была та же проблема, и подключение с использованием IP-адреса сервера вместо DNS-имени сработало для второго подключения.
Бен Торелл

10

Это решение для Windows 7 (хотя оно может работать и для других версий)

  1. откройте Блокнот (или любой текстовый редактор) от имени администратора
    (вам нужно щелкнуть правой кнопкой мыши и сказать «запустить от имени администратора»)

  2. найти: c: \ WINDOWS \ system32 \ drivers \ etc \ hosts (вам нужно будет показать все файлы не только .txt)

Теперь, если:
- у вас есть 3 пользователя samba: tom fred jon
- 3 общих ресурса samba на вашем сервере samba (т. Е. IP: 192.168.0.100): docs stuff pics
- вы хотите подключиться как tom к docs, как fred to stuff и как фото

Теперь добавьте следующие строки в файл hosts :

192.168.0.100   tomsdocs   tomsdocs
192.168.0.100   fredstuff  fredstuff
192.168.0.100   jonspics   jonspics

После того, как вы закроете и сохраните, вы можете «Подключить сетевой диск» следующим образом:

\\tomsdocs\docs as user tom
\\fredstuff\stuff as user fred
\\jonspics\pics as user jon

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

Причина, по которой это работает, заключается в том, что windows должен думать, что он подключается к разным серверам. Возможно, вы также можете настроить свой собственный домашний DNS-сервер, но я предпочитаю подделывать кучу записей в файле hosts (который оценивается до того, как ваш компьютер с Windows обращается к DNS за помощью).
Поскольку вся проблема связана с окнами на стороне клиента, я предпочитаю делать это таким образом.

Надеюсь это поможет.


Это работает как шарм! В течение часа возился с общим ресурсом samba на сервере, пока я не нашел это - Спасибо :)
Lorem Monkey

Спасибо тебе за это. Я ненавижу работать с новым дерьмом, которое извергает Microsoft, но это элегантно, если не глупо ... прекрасно работает!
SuperJames

1
Любопытно, однако, двойные имена опечатка? Зачем вам использовать одни и те же дважды для одного и того же IP?
Brezanac

8

Если вы предпочитаете не связываться с каждым клиентом для решения проблемы с сервером, вы можете использовать файл smb.conf для установки псевдонимов имен для сервера. Это дает дополнительное преимущество для каждого псевдонима, который отображается как отдельный сервер в сети Windows.

Отредактируйте ваш файл smb.conf и добавьте следующую запись в раздел [global]:

[global]
...
netbios aliases = alias1 alias2 readonly


После перезапуска samba (не забудьте перезапустить smbd И nmbd!) Вы сможете получить доступ к псевдонимам нового сервера, используя UNC-запись в проводнике Windows.
Обратите внимание, что для их работы на моем сайте может потребоваться некоторое время, примерно через 1 минуту после перезапуска samba.
Как только псевдонимы появятся в сети Windows, вы определенно готовы к работе.


2

у меня была та же проблема.

для одного пользователя я использую: \ 192.168.xx <- IP-адрес сервера Ubuntu, для другого пользователя: \ server-name <- имя хоста сервера Ubuntu.

это позволило мне соединиться с машиной Windows, используя разные логины.



1

Используйте опцию netbios alias samba:

netbios name = share1
netbios aliases = share2

Windows «увидит» 2 разных сервера Samba, и вы сможете подключиться к обоим общим ресурсам с разной аутентификацией пользователя

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.