Samba + Windows: zezwolić na wiele połączeń różnych użytkowników?


23

Mam komputer z systemem Ubuntu z Sambą, którego używam do udostępniania rzeczy komputerom mojej rodziny Windows w naszej sieci lokalnej. Obecnie uzyskują dostęp do udostępniania filmów / muzyki / itp. Jednemu użytkownikowi.

Chcę połączyć je z innym udziałem jako inny użytkownik (na przykład użytkownik „goytacaz”).

Gdy próbuję połączyć się z tym nowym udziałem, system Windows wyświetla komunikat „Błąd 1219” i skarży się na wiele połączeń tego samego użytkownika.

Jak sprawić, by mój komputer akceptował wiele połączeń tego samego użytkownika?


Czy chcesz się połączyć za pomocą samby? Samba już obsługuje ten AFAIK.
heavyd

Odpowiedzi:


24

Nad Sambą? Nie powinno być żadnych problemów; tak długo, jak nazwa użytkownika i hasło są poprawne, oba połączenia powinny odbywać się poprawnie.

Aktualizacja: re: „Błąd 1219”. Jest to błąd po stronie klienta - system Windows pozwala na łączenie się z serwerem tylko jako jeden użytkownik na raz. (Zobacz dokumentację Microsoft pod adresem KB938120 .) Oznacza to, że komputer z systemem Windows jest już podłączony jako inny użytkownik, a zatem próby ponownego nawiązania połączenia, jako poprawnego użytkownika, nie powiodły się.

Najpierw musisz rozłączyć pierwsze połączenie. Znam dwa sposoby:

  • Odłącz wszelkie dyski sieciowe z ponownym połączeniem przy logowaniu z tego serwera. Restart. Połącz się ponownie z serwerem i upewnij się, że podałeś prawidłową nazwę użytkownika i hasło.

  • Użyj polecenia net use / delete z powłoki poleceń systemu Windows (Start -> Uruchom -> cmd; w wierszu polecenia wpisz polecenie; może być konieczne podanie nazwy udziału).

Aktualizacja 2: jeśli użytkownicy już łączą się z serwerem za pomocą jednego użytkownika, nie będzie można pozwolić im połączyć się z drugim użytkownikiem. Musisz ponownie rozważyć strategię udostępniania i ponownie skonfigurować Sambę, aby stosowała się do tej strategii. (To nie twoja wina; obwiniam Windows.)

Osobiście trzymałbym się poszczególnych użytkowników dla każdej osoby i rozważałbym użycie grup do kontrolowania dostępu do udziałów. Działa to dobrze, jeśli masz niektóre udziały, do których chcesz, aby każdy miał dostęp do odczytu i zapisu, oraz inne, które mają być przeznaczone tylko do odczytu dla wszystkich użytkowników oprócz kilku wybranych.

Aktualizacja 3: Dokument MS, do którego prowadzi powyższy link, oferuje te dwa obejścia umożliwiające połączenie z serwerem jako oddzielni użytkownicy. Ogólny pomysł polega na tym, aby system Windows myślał, że łączy się z innym serwerem, używając innej nazwy .

  1. Użyj adresu IP serwera, gdy łączysz się z drugą nazwą użytkownika. (Użyj, \\ServerName\sharenamegdy łączysz się jako pierwszy użytkownik, ale używaj, \\X.X.X.X\sharenamegdy łączysz się jako drugi użytkownik.)

  2. Utwórz jeden lub więcej aliasów DNS, które będą używane przez serwer podczas łączenia się z drugą (, trzecią, czwartą ...) nazwą użytkownika. (Użyj, \\ServerName\sharenamegdy łączysz się jako pierwszy użytkownik, ale używaj, \\ServerAlias1\sharenamegdy łączysz się jako drugi użytkownik, \\ServerAlias2\sharenamepodczas łączenia się jako trzeci użytkownik itp.)


1
Dziękuję za tę odpowiedź. Miałem ten sam problem i połączenie przy użyciu adresu IP serwera zamiast nazwy DNS działało dla mnie dla drugiego połączenia.
Ben Torell

10

Jest to rozwiązanie dla systemu Windows 7 (chociaż może działać również w przypadku innych wersji)

  1. otwórz Notatnik (lub dowolny edytor tekstowy) jako Administrator
    (musisz kliknąć prawym przyciskiem myszy i powiedzieć „uruchom jako administrator”)

  2. znajdź: c: \ WINDOWS \ system32 \ drivers \ etc \ hosts (musisz pokazać wszystkie pliki nie tylko .txt)

Teraz, jeśli np .:
- masz 3 użytkowników samby: tom fred jon
- 3 udziały samby na twoim serwerze samby (tj. IP: 192.168.0.100): fotki z dokumentami
- chcesz połączyć się jako tom z dokumentami, jako fred z materiałami i jak jon do zdjęć

Teraz dodaj następujące wiersze do pliku hosts :

192.168.0.100   tomsdocs   tomsdocs
192.168.0.100   fredstuff  fredstuff
192.168.0.100   jonspics   jonspics

Po zamknięciu i zapisaniu możesz „Mapować dysk sieciowy” w następujący sposób:

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

Pamiętaj, że powyższe nazwy zależą wyłącznie od Ciebie ... Cokolwiek umieścisz w pliku hosts, będzie musiało przetworzyć to, co nazywasz serwerem podczas mapowania dysku sieciowego.

Powodem tego jest to, że Windows musi myśleć, że łączy się z różnymi serwerami. Prawdopodobnie możesz również skonfigurować własny domowy serwer DNS, ale wolę sfałszować kilka wpisów w pliku hosts (który jest oceniany, zanim Twój komputer z systemem Windows poprosi DNS o pomoc).
Ponieważ cały problem jest problemem po stronie klienta, wolę robić to w ten sposób.

Mam nadzieję że to pomoże.


To działało jak urok! Grzebałem przez godzinę z udziałem samby na serwerze, aż znalazłem to - Dzięki :)
lorem monkey

Dziękuję Ci za to. Nienawidzę musieć omijać nowego badziewia, jaki wyrzuca Microsoft, ale jest to eleganckie, jeśli nie głupie ... działa świetnie!
SuperJames,

1
Ciekawe, czy podwójne nazwy to literówka? Dlaczego używałbyś dokładnie tych samych dwa razy dla tego samego adresu IP?
brezanac,

8

Jeśli wolisz nie kręcić się przy każdym kliencie w celu rozwiązania problemu z serwerem, możesz użyć pliku smb.conf do skonfigurowania aliasów nazw dla serwera. Ma to tę dodatkową zaletę, że każdy alias pojawia się jako osobny serwer w sieci Windows.

Edytuj plik smb.conf i dodaj następujący wpis w sekcji [globalnej]:

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


Po ponownym uruchomieniu samby (pamiętaj, aby zrestartować smbd ORAZ nmbd!) Powinieneś mieć dostęp do nowych aliasów serwerów za pomocą notacji UNC w Eksploratorze Windows.
Zauważ, że może minąć trochę czasu, na mojej stronie około 1 minuty po ponownym uruchomieniu samby, aby działały.
Gdy aliasy pojawią się w sieci Windows, zdecydowanie możesz zacząć.


2

właśnie miałem ten sam problem.

dla jednego użytkownika używam: \ 192.168.xx <- IP serwera Ubuntu dla drugiego użytkownika: \ server-name <- nazwa hosta serwera Ubuntu.

pozwoliło mi to połączyć się z komputerem z systemem Windows przy użyciu różnych loginów.



1

Użyj opcji samba netbios alias:

netbios name = share1
netbios aliases = share2

Windows „zobaczy” 2 różne serwery samby i możesz połączyć się z nimi, aby udostępnić je innym użytkownikom

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.