Samba + Windows: อนุญาตการเชื่อมต่อหลายรายการโดยผู้ใช้ที่แตกต่างกันหรือไม่


23

ฉันมีเครื่องที่ใช้ Ubuntu กับ Samba ซึ่งฉันใช้เพื่อแชร์สิ่งต่างๆกับเครื่อง Windows ของครอบครัวในเครือข่ายท้องถิ่นของเรา ขณะนี้พวกเขาเข้าถึงการแชร์สำหรับภาพยนตร์ / เพลง / ฯลฯ ด้วยผู้ใช้หนึ่งราย

ฉันต้องการเชื่อมต่อพวกเขาไปยังการแชร์อื่นในฐานะผู้ใช้อื่น (ตัวอย่างเช่นผู้ใช้ "goytacaz")

เมื่อฉันลองเชื่อมต่อกับการแชร์ใหม่นี้ Windows จะทำให้ฉัน "Error 1219" และบ่นเกี่ยวกับการเชื่อมต่อหลายครั้งโดยผู้ใช้รายเดียวกัน

ฉันจะทำให้เครื่องของฉันยอมรับการเชื่อมต่อหลาย ๆ ครั้งโดยผู้ใช้คนเดียวกันได้อย่างไร?


คุณแค่ต้องการเชื่อมต่อโดยใช้ samba หรือไม่? แซมบ้าสนับสนุน AFAIK นี้แล้ว
หนัก

คำตอบ:


24

มากกว่าแซมบ้า? ไม่ควรมีปัญหาใด ๆ ตราบใดที่ชื่อผู้ใช้และรหัสผ่านถูกต้องการเชื่อมต่อทั้งสองควรเกิดขึ้นอย่างถูกต้อง

อัปเดต:อีกครั้ง: "ข้อผิดพลาด 1219" นี่เป็นข้อผิดพลาดฝั่งไคลเอ็นต์ - Windows อนุญาตให้คุณเชื่อมต่อกับเซิร์ฟเวอร์ในฐานะผู้ใช้ทีละคนเท่านั้น (ดูเอกสารของ Microsoft ที่ KB938120 ) ซึ่งหมายความว่าเครื่อง Windows ได้เชื่อมต่อแล้วในฐานะผู้ใช้อื่นดังนั้นความพยายามในการเชื่อมต่อของคุณอีกครั้งในฐานะผู้ใช้ที่ถูกต้องนั้นล้มเหลว

คุณต้องยกเลิกการเชื่อมต่อครั้งแรกก่อนจึงจะสามารถเชื่อมต่อได้ ฉันรู้ว่าต้องทำสองวิธี:

  • ยกเลิกการเชื่อมต่อไดรฟ์เครือข่าย reconnect-at-logon จากเซิร์ฟเวอร์นั้น Reboot เชื่อมต่อกับเซิร์ฟเวอร์อีกครั้งและให้แน่ใจว่าคุณให้ชื่อผู้ใช้และรหัสผ่านที่เหมาะสม

  • ใช้คำสั่งnet use / deleteจากเชลล์คำสั่งของ Windows (เริ่ม -> Run -> 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 ที่ใช้งานได้สำหรับการเชื่อมต่อครั้งที่สอง
Ben Torell

10

นี่เป็นวิธีแก้ปัญหาสำหรับ Windows 7 (แม้ว่าอาจใช้งานได้กับรุ่นอื่นด้วย)

  1. เปิด Notepad (หรือตัวแก้ไขข้อความใด ๆ ) ในฐานะผู้ดูแลระบบ
    (คุณต้องคลิกขวาแล้วพูดว่า 'run as Administrator')

  2. ค้นหา: c: \ WINDOWS \ system32 \ drivers \ etc \ hosts (คุณจะต้องแสดงไฟล์ทั้งหมดไม่เพียง แต่. txt)

ตอนนี้ถ้าเช่น:
- คุณมีผู้ใช้แซมบ้า 3 คน: ทอมเฟร็ดจอน
- แซมบ้าแบ่งปัน 3 หุ้นบนเซิร์ฟเวอร์แซมบ้าของคุณ (เช่น IP: 192.168.0.100): รูปภาพสิ่ง docs
- คุณต้องการเชื่อมต่อเป็นทอมกับเอกสาร จอนกับภาพ

ตอนนี้เพิ่มบรรทัดต่อไปนี้ลงในไฟล์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

โปรดทราบว่าชื่อข้างต้นนั้นขึ้นอยู่กับคุณ ... สิ่งที่คุณใส่ลงในไฟล์โฮสต์จะต้องควบคุมสิ่งที่คุณเรียกว่าเซิร์ฟเวอร์เมื่อคุณแมปไดรฟ์เครือข่าย

เหตุผลที่ใช้งานได้เนื่องจาก windows จำเป็นต้องคิดว่ามันกำลังเชื่อมต่อกับเซิร์ฟเวอร์ที่แตกต่างกัน คุณสามารถตั้งค่าเซิร์ฟเวอร์ DNS ที่บ้านของคุณเองได้ แต่ฉันต้องการแกล้งทำรายการในไฟล์โฮสต์ (ซึ่งได้รับการประเมินก่อนที่เครื่อง windows ของคุณจะขอความช่วยเหลือจาก DNS)
เนื่องจากปัญหาทั้งหมดเป็นปัญหาด้านหน้าต่างลูกค้าฉันชอบที่จะทำเช่นนี้

หวังว่านี่จะช่วยได้


สิ่งนี้ได้ผลเหมือนมนต์เสน่ห์! เล่นเป็นเวลาหนึ่งชั่วโมงกับ samba ที่แชร์บนเซิร์ฟเวอร์จนกว่าฉันจะพบสิ่งนี้ - ขอบคุณ :)
ลิง lorem monkey

ขอบคุณสำหรับสิ่งนี้. ฉันเกลียดที่จะต้องหลีกเลี่ยงเรื่องอึที่ไมโครซอฟท์ประกาศออกมา แต่มันก็ดูดีถ้าไม่โง่ ... มันเยี่ยมมาก!
SuperJames

1
แม้ว่าจะสงสัยว่าชื่อสองตัวเป็นตัวพิมพ์ใหญ่หรือไม่? ทำไมคุณต้องใช้อันเดียวกันกับไอพีเดียวกันซ้ำสองครั้ง?
brezanac

8

หากคุณไม่ต้องการเล่นซอกับไคลเอนต์แต่ละรายเพื่อแก้ปัญหาเซิร์ฟเวอร์คุณสามารถใช้ไฟล์ smb.conf เพื่อตั้งชื่อแทนชื่อสำหรับเซิร์ฟเวอร์ สิ่งนี้มีประโยชน์เพิ่มเติมของนามแฝงแต่ละรายการที่แสดงเป็นเซิร์ฟเวอร์ที่แตกต่างในเครือข่าย Windows

แก้ไขไฟล์ smb.conf ของคุณและเพิ่มรายการต่อไปนี้ในส่วน [global]:

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


หลังจากรีสตาร์ทแซมบ้า (อย่าลืมรีสตาร์ท smbd AND nmbd!) คุณควรจะสามารถเข้าถึงนามแฝงเซิร์ฟเวอร์ใหม่โดยใช้สัญลักษณ์ UNC ใน Windows Explorer
โปรดทราบว่าอาจใช้เวลาเล็กน้อยที่ไซต์ของฉันประมาณ 1 นาทีหลังจาก samba-restart เพื่อให้ทำงานได้
เมื่อนามแฝงปรากฏในเครือข่าย Windows คุณก็จะไปได้ดีแน่นอน


2

ฉันแค่มีปัญหาเดียวกัน

สำหรับผู้ใช้รายหนึ่งฉันใช้: \ 192.168.xx <- IP ของเซิร์ฟเวอร์ ubuntu สำหรับผู้ใช้รายอื่น: \ server-name <- ชื่อโฮสต์ของเซิร์ฟเวอร์ ubuntu

สิ่งนี้ทำให้ฉันสามารถเชื่อมต่อกับเครื่อง windows โดยใช้การเข้าสู่ระบบที่แตกต่างกัน



1

ใช้ตัวเลือก netbios alias samba:

netbios name = share1
netbios aliases = share2

windows จะ "เห็น" 2 เซิร์ฟเวอร์ samba ที่แตกต่างกันและคุณสามารถเชื่อมต่อกับทั้งคู่ได้โดยใช้การตรวจสอบสิทธิ์ผู้ใช้ที่แตกต่างกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.